mysql索引学习

概念:是一种高效获取数据的数据结构(有序)

索引结构

二叉树

红黑树

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约束它。

posted @   刘百会  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示