概念:是一种高效获取数据的数据结构(有序)
索引结构
二叉树
红黑树
hash
btree,叶子节点存数据,一个页占用数据大,层级结构就多
b+tree,非叶子节点存储数据,mysql做了优化,双向链表
索引分类:
主键索引、唯一索引、常规索引、全文索引
聚集索引、非聚集索引
通过命令查询增删改查执行次数
show global status like 'Com_______'
sql满查询分析
show_query_log=1;
性能分析explain
type、possable_keys key key_len rows ref
extra字段:using index condition 使用了索引,需要回表查询
using where;using index使用了索引,不需要回表查询
索引失效场景:
or:两边字段都是索引才会走索引
like:前模糊不走索引
类型转换不走索引
数据覆盖,mysql优化器会判断哪个效率高,全盘扫描就不走索引
is null和is not null可能会走索引或者不走
sql提示
查询用哪个索引 use index、force index
索引设计原则
1、数据量大频繁建立索引的
2、查询条件操作的字段建立索引
3、区分度高的列建立索引
4、尽量使用联合索引,避免回表
5、要控制索引的数量
6、如果索引列不能存储null值,在建表通过not null约束它。
标签:index,查询,学习,索引,mysql,using,null From: https://www.cnblogs.com/liubaihui/p/17345905.html