MySQL(⼆)——索引相关⾯试题
1. 索引是什么?有哪些优缺点?
答:
索引是⼀种能帮助MySQL提⾼查询效率的数据结构。
计算机数值原码反码补码优点:
1)快速访问数据表中的特定信息,调⾼检索速度
好玩的代码雨2)创建唯⼀性索引,保证数据表中每⼀⾏数据的唯⼀性
3)加速表与表之间的连接
4)使⽤分组和排序进⾏数据检索时,可以显著减少查询中分组和排序的时间
缺点:
1)虽然提⾼了查询速度,但是降低了更新表的速度,⽐如update、insert,在更新数据时,MySQL不仅要更新数据,还要更新索引⽂件2)建⽴索引会占⽤磁盘⽂件的索引⽂件
2. 使⽤索引的注意事项?
答:
1)使⽤短索引,短索引不仅可以提⾼查询速度,更能节省磁盘空间和I/O操作
2)索引列排序,MySQL查询只使⽤⼀个索引,因此如果where⼦句已经使⽤了索引的话,那么order by中的列是不会使⽤索引的,因此数据库默认排序可以符合要求的情况下,不要使⽤排序操作
3)⼀般情况下不使⽤like语句操作,如果⾮使⽤不可,注意like"%aaa%"不会使⽤索引;⽽like"aaa%"会使⽤索引
4)不要在列上进⾏运算
5)尽量不要使⽤not和<>操作
3. 为什么MySQL官⽅建议使⽤⾃增主键作为表的主键?
答:
fastjson替代方案因为⾃增主键是连续的,在插⼊勾·过程中尽量减少页分裂,即使要进⾏页分裂,也只会分裂很少⼀部
分,并且⾃增主键都是插⼊到最后,所以⾃增主键作为表的主键,对于表的操作来说性能是最⾼的
4. ⾃增主键有哪些优缺点?
答:
优点:
1)数据存储空间⼩
mysql面试题sql2)性能最好
3)减少页分裂
缺点:
1)数据量过⼤,可能会超出⾃增长取值范围
2)⽆法满⾜分布式存储,分库分表的情况下⽆法合并表
3)主键有⾃增规律,容易被破解
所以是否需要使⽤⾃增主键,需要根据⾃⼰的业务场景来设计。如果是单库单表,则优先考虑⾃增主键
5. 索引有⼏种类型?分别如何创建?
答:
MySQL 的索引有两种分类⽅式:逻辑分类和物理分类。
matlab傅里叶变换函数fourier按照逻辑分类,索引可分为:
1)主键索引:⼀张表只能有⼀个主键索引,不允许重复、不允许为 NULL;
2)Hash:虽然可以快速定位,但是没有顺序,IO复杂度⾼;
3)⼆叉树:树的⾼度不均匀,不能⾃平衡,查效率跟数据有关(树的⾼度),并且IO代价⾼;
4)红⿊树:树的⾼度随着数据量增加⽽增加,IO代价⾼。
16. 优化器选择查询索引的影响因素有哪些?
答:
三层电梯plc控制系统设计梯形图优化器的⽬的是使⽤最⼩的代价选择最优的执⾏⽅案,影响优化器选择索引的因素如下:
1)扫描⾏数:扫描的⾏数越⼩,执⾏代价就越少,执⾏效率就越⾼
2)是否使⽤了临时表
3)是否排序
17. 如何优化⾝份证的索引?
答:
在中国因为⾝份证前6位代表的是地区,所以很多⼈前6位都是相同的,如果我们使⽤前缀索引为6位的话,性能提升也不是很明显,但如果设置的位数过长,那么占⽤的磁盘空间就越⼤,数据页能放下的索引值就越少,搜索效率也就越低。所以优化⽅案有以下两种:
1)使⽤⾝份证倒序存储,这样设置前六位的意义就很⼤了
2)使⽤hash值,新创建⼀个字段⽤于存储⾝份证的hash值
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论