因此,MySQL5.6版本之后,选出包含“小”字后,顺表过滤age=28
文章插图
11. 大表如何添加索引
如果一张表数据量级是千万级别以上的,那么,如何给这张表添加索引?
我们需要知道一点,给表添加索引的时候,是会对表加锁的 。如果不谨慎操作,有可能出现生产事故的 。可以参考以下方法:
(1)先创建一张跟原表A数据结构相同的新表B 。
(2)在新表B添加需要加上的新索引 。
(3)把原表A数据导到新表B
(4)rename新表B为原表的表名A,原表A换别的表名;
12. 如何知道语句是否走索引查询?
explain查看SQL的执行计划,这样就知道是否命中索引了 。
当explain与SQL一起使用时,MySQL将显示来自优化器的有关语句执行计划的信息 。
文章插图
一般来说,我们需要重点关注type、rows、filtered、extra、key 。
1.2.1 type
type表示连接类型,查看索引执行情况的一个重要指标 。以下性能从好到坏依次:system > const > eq_ref > ref > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL
- system:这种类型要求数据库表中只有一条数据,是const类型的一个特例,一般情况下是不会出现的 。
- const:通过一次索引就能找到数据,一般用于主键或唯一索引作为条件,这类扫描效率极高,,速度非常快 。
- eq_ref:常用于主键或唯一索引扫描,一般指使用主键的关联查询
- ref : 常用于非主键和唯一索引扫描 。
- ref_or_null:这种连接类型类似于ref,区别在于MySQL会额外搜索包含NULL值的行
- index_merge:使用了索引合并优化方法,查询使用了两个以上的索引 。
- unique_subquery:类似于eq_ref,条件用了in子查询
- index_subquery:区别于unique_subquery,用于非唯一索引,可以返回重复值 。
- range:常用于范围查询,比如:between ... and 或 In 等操作
- index:全索引扫描
- ALL:全表扫描
该列表示MySQL估算要找到我们所需的记录,需要读取的行数 。对于InnoDB表,此数字是估计值,并非一定是个准确值 。
1.2.3 filtered
该列是一个百分比的值,表里符合条件的记录数的百分比 。简单点说,这个字段表示存储引擎返回的数据在经过过滤后,剩下满足条件的记录数量的比例 。
1.2.4 extra
该字段包含有关MySQL如何解析查询的其他信息,它一般会出现这几个值:
- Using filesort:表示按文件排序,一般是在指定的排序和索引排序不一致的情况才会出现 。一般见于order by语句
- Using index :表示是否用了覆盖索引 。
- Using temporary: 表示是否使用了临时表,性能特别差,需要重点优化 。一般多见于group by语句,或者union语句 。
- Using where : 表示使用了where条件过滤.
- Using index condition:MySQL5.6之后新增的索引下推 。在存储引擎层进行数据过滤,而不是在服务层过滤,利用索引现有的数据减少回表的数据 。
该列表示实际用到的索引 。一般配合possible_keys列一起看 。
13.Hash 索引和 B+树区别是什么?你在设计索引是怎么抉择的?
- B+树可以进行范围查询,Hash 索引不能 。
- B+树支持联合索引的最左侧原则,Hash 索引不支持 。
- B+树支持 order by 排序,Hash 索引不支持 。
- Hash 索引在等值查询上比 B+树效率更高 。(但是索引列的重复值很多的话,Hash冲突,效率降低) 。
- B+树使用 like 进行模糊查询的时候,like 后面(比如%开头)的话可以起到优化的作用,Hash 索引根本无法进行模糊查询 。
优点:
- 索引可以加快数据查询速度,减少查询时间
- 唯一索引可以保证数据库表中每一行的数据的唯一性
- 创建索引和维护索引要耗费时间
- 索引需要占物理空间,除了数据表占用数据空间之外,每一个索引还要占用一定的物理空间
- 以表中的数据进行增、删、改的时候,索引也要动态的维护 。
聚簇索引并不是一种单独的索引类型,而是一种数据存储方式 。它表示索引结构和数据一起存放的索引 。非聚集索引是索引结构和数据分开存放的索引 。
【一线大厂面试的MySQL索引夺命连环15问】
推荐阅读
- 求职|求职面试的5个发展趋势,你知道吗?
- 求职|男子面试看上女主管,向女主管表白,女子“你月薪5万我嫁给你”
- 招聘|“去面试我没被选上,我爸被看上了”,毕业生求职奇遇,笑发财了
- 杨紫|杨紫:坚定自信的新时代女性典范 ,从演艺世家到一线女星:杨紫的成长之路
- 李多海|李多海婚礼现场公布,众一线韩星受邀参加,金在中权志龙近状曝光
- 洛丽塔|女生穿洛丽塔去公司面试,对方的反应让人无法接受
- 招聘|如何写出一份大厂都不会拒绝的简历?
- ai面试官|AI面试来了,作为求职者,你准备好了吗?
- 招聘|一位面试官的自述:“我很满意的女员工,因为简历造假被开除”
- 文职|2023军队文职第二批招录开始,无需笔试仅面试,待遇比公务员还好