Navicat设置MySQL索引+MySQL索引知识
引用:
https://www.cnblogs.com/bypp/p/7755307.html
https://blog.csdn.net/resilient/article/details/82829820
查看当前MySQL存储引擎:
mysql> show engines;
教程:https://www.cnblogs.com/zhming26/p/6322353.html
#0 Navicat操作位置:
#1 索引种类:
1. Fulltext 全文本搜索索引:用于搜索长篇文章。
2. Unique 唯一索引:
-
主键索引:primary key :加速查找+约束(不为空且唯一)
-
唯一索引:unique:加速查找+约束 (唯一)
3. 联合索引:
-
-primary key(id,name):联合主键索引
-
-unique(id,name):联合唯一索引
-
-index(id,name):联合普通索引
4. Normal 普通索引:加快搜索。
5. Spatial 空间索引。
#2 索引功能
1. 加快搜索;
2. mysql中的primary key,unique,联合唯一也都是索引,这些索引除了加速查找以外,还有约束的功能
#3 索引的两大类型hash与btree
-
#我们可以在创建上述索引的时候,为其指定索引类型,分两类
-
hash类型的索引:查询单条快,范围查询慢
-
btree类型的索引:b+树,层数越多,数据量指数级增长(我们就用它,因为innodb默认支持它)
-
-
#不同的存储引擎支持的索引类型也不一样
-
InnoDB 支持事务,支持行级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
-
MyISAM 不支持事务,支持表级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
-
Memory 不支持事务,支持表级别锁定,支持 B-tree、Hash 等索引,不支持 Full-text 索引;
-
NDB 支持事务,支持行级别锁定,支持 Hash 索引,不支持 B-tree、Full-text 等索引;
-
Archive 不支持事务,支持表级别锁定,不支持 B-tree、Hash、Full-text 等索引;
1)索引方法 btree 可以用于“ >、 < 、=”查询 ,如果查id=1000的数据 建立索引后 二分查找最多13次就可以查出相应的数据;
2)hash 不能做order by排序 不能做 用like模糊查询。
#4 慢查询优化的基本步骤
-
0.先运行看看是否真的很慢,注意设置SQL_NO_CACHE
-
1.where条件单表查,锁定最小返回记录表。这句话的意思是把查询语句的where都应用到表中返回的记录数最小的表开始查起,单表每个字段分别查询,看哪个字段的区分度最高
-
2.explain查看执行计划,是否与1预期一致(从锁定记录较少的表开始查询)
-
3.order by limit 形式的sql语句让排序的表优先查
-
4.了解业务方使用场景
-
5.加索引时参照建索引的几大原则
-
6.观察结果,不符合预期继续从0分析
-
转 https://blog.csdn.net/weixin_41827162/article/details/87891221
标签:
sql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)