当前位置:Gxlcms > 数据库问题 > mysql 几种索引的复习(温故而知新)

mysql 几种索引的复习(温故而知新)

时间:2021-07-01 10:21:17 帮助过:14人阅读

技术图片

 

 和 左连接 右连接一样

技术图片

 

 -- ref:非唯一性索引扫描,返回匹配某个单独值的所有行。本质是也是一种索引访问,它返回所有匹配某个单独值的行,然而他可能会找到多个符合条件的行,所以它应该属于查找和扫描的混合体

io表共三个索引

技术图片

 

走的是索引查找

 技术图片

 

一个device_id有很多条记录

 技术图片 

--  ALL:Full Table Scan,遍历全表以找到匹配的行 

技术图片

一个最简单的查询 花费了3秒多 随着数据量的增加 ALL花费的时间越来越大

技术图片

-- range:只检索给定范围的行,使用一个索引来选择行。key列显示使用了那个索引。一般就是在where语句中出现了bettween、<、>、in等的查询。这种索引列上的范围扫描比全索引扫描要好。只需要开始于某个点,结束于另一个点,不用扫描全部索引 

未给signal_strength字段加索引前 如下

技术图片

 

 技术图片

 

 给signal_strength字段加索引后 如下

技术图片

 

 技术图片

 

 存在一种情况 实际使用的索引,如果为NULL,则没有使用索引 如下

-73 -74 -75 都有值 不存在null 走索引

技术图片

 

 -73 到 80 之间 存在null 此时不走索引 走全表扫描

技术图片

-- index:Full Index Scan,index与ALL区别为index类型只遍历索引树。这通常比ALL快,因为索引文件通常比数据文件小。(Index与ALL虽然都是读全表,但index是从索引中读取,而ALL是从硬盘读取)

io表共三个索引 测试一个查索引列 一个不查索引列

技术图片

 

 查询索引列

技术图片

 

 不查索引列

技术图片

 

mysql 几种索引的复习(温故而知新)

标签:简单   区别   sql   选择   sign   全表扫描   ice   can   数据量   

人气教程排行