IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL常见面试宝典 -> 正文阅读

[大数据]MySQL常见面试宝典

1.主键、外键有什么区别?

主键:用来表示一条记录的唯一标识,不能有重复的,不允许为空,默认为聚集索引,用来保证数据完整性。

外键:表的某列是另一表的主键,外键可以有重复的,也可以是空值,用来和其他表建立关联用的

2.什么是范式化,反范式化,三大范式是什么?

范式化:就是一系列设计数据库模型的规范,范式化的目的就是减少数据冗余,提高数据完整性。

反范式化:是一种对范式化设计的数据库的性能优化策略,通过在表中增加冗余或重复的数据来提高数据库的读取性能。

没有冗余的数据库不一定是最好的数据库,有时为了提高查询效率,就必须降低范式标准,适当保留冗余数据。具体操作就是在一个表中增加另一个表的冗余字段,减少了两个表查询时的关联,从而提高查询效率。

三大范式:

第一范式:是对属性的原子性约束,要求属性具有原子性,不可再分解。

第二范式:是对记录的唯一性约束,要求记录有唯一标识,即实体的唯一性。

第三范式:是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。

3.范式化的优缺点?

优点:

  • 数据库更新起来更快
  • 可以只修改更少的数据
  • 更少的distinct/group by语句
  • 表更小,可以在内存中执行

缺点:范式化没有冗余数据,查询会产生较多关联,并且不能建议复合索引,所以查询性能会大大降低。

4.反范式化的优缺点?

优点:

  • 可以避免关联查询
  • 可以设计有效的索引
  • 可以提高查询速度

缺点:表内如果由冗余字段,删除被冗余表的数据时候会造成冗余表有些有用的信息丢失。

5.数据库设计时怎么使用范式?

在设计数据库时,不一定强制要求使用标准范式化设计,可以进行一定的调整。一般的设计是混用范式化和反范式化,适度进行数据冗余,以提高查询性能。

6.MySQL索引为什么选用B+Tree?

  • 提高索引查询时的磁盘IO效率,还可以提高范围查询的效率
  • 查询IO次数更少,特别是范围查询
  • 所有查询都要查到叶子节点,查询性能稳定
  • B+树里的元素也都是有序的

7.MySQL B+树索引和哈希索引的区别?

  • 哈希索引适合等值查询,但是无法进行范围查询
  • 哈希索引无法利用索引完成排序
  • 哈希索引不支持多列联合索引的最左匹配原则
  • 如果有大量重复键值的情况,就可能存在哈希碰撞问题,哈希索引的效率会很低

所以,B+树索引绝对适用于大多数场景,用B+树索引即可

8.MySQL默认数据库引擎是什么?

MySQL5.5之前默认的是MylSAM,MySQL5.5开始默认的是InnoDB

9.MySQL索引实现的是什么数据结构?

InnoDB和MyISAM索引使用的是B+Tree,而Memory索引使用的是Hash

10.MySQL的四种存储引擎对比

功能InnoDBMYISAMMemoryArchive
存储限制64TB256TBRAMNone
支持事务×××
支持全文索引××
支持树索引×
支持哈希索引×××
支持数据缓存×N/A×
支持外键×××

11.MySQL引擎MyISAM和InnoDB的区别?

  • MyISAM不支持事务,InnoDB支持事务
  • MyISAM支持表级锁,InnoDB支持表锁和行级锁
  • MyISAM不支持外键,InnoDB支持
  • MyISAM允许没有任何索引和主键,InnoDB必须要有
  • MyISAM表和索引分两个文件存储,InnoDB表和索引都保存在同一个数据文件中

12.MySQL InnoDB引擎的物理存储文件?

MySQL InnoDB引擎在磁盘上存储了两个文件:

  • .frm 存储与表相关的元数据信息,包括表结构的定义信息等
  • .idb 存储InnoDB所有表数据和索引
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:34:12  更:2022-01-17 11:35:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:47:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码