mysql索引
Posted dennyzhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql索引相关的知识,希望对你有一定的参考价值。
参照:https://zhidao.baidu.com/question/1435189115200686659.html
因数据库的内容是写入到磁盘中,因此在进行数据读取时如果没有索引会进行全表扫描获取数据判断过滤。
如果有索引,索引会单独占据一部分磁盘,查找时会先扫描索引,从索引中获取索引数据和整行数据在磁盘的位置,
从而大大提高了查找效率。
1. 在数据量小时,无多大意义。
2. 数据量大时,效率可达到成千上万倍。
创建索引注意点:
1.索引分为一般索引和唯一索引。索引列不可为Null,否则会使得索引失效。
2. 当数据量大时,对于排序字段也应该建立索引。
3. 复合索引的左前缀,越是靠前的越会被优先筛选,形成正式索引为:(A,B,C) -> (A,B,C) (A,B) (A)
查看写的sql语句是否可优化,可使用
explain + 查询语句
其中type列的值从好到坏
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL
possible_keys 可给出可能的key值。
rows:显示mysql认为它执行查询时必须检查的行数。
ref:显示使用哪个列或常数与key一起从表中选择行。
以上是关于mysql索引的主要内容,如果未能解决你的问题,请参考以下文章