Navicat设置MySQL索引+MySQL索引知识
引⽤:
查看当前MySQL存储引擎:查看mysql索引
mysql> show engines;
#0 Navicat操作位置:
#1 索引种类:
1. Fulltext 全⽂本搜索索引:⽤于搜索长篇⽂章。
2. Unique 唯⼀索引:
1.
主键索引:primary key :加速查+约束(不为空且唯⼀)
2.
唯⼀索引:unique:加速查+约束(唯⼀)
3. 联合索引:
1.
-primary key(id,name):联合主键索引
2.
-unique(id,name):联合唯⼀索引
3.
-index(id,name):联合普通索引
4. Normal 普通索引:加快搜索。
5. Spatial 空间索引。
#2 索引功能
1. 加快搜索;
2. mysql中的primary key,unique,联合唯⼀也都是索引,这些索引除了加速查以外,还有约束的功能
#3 索引的两⼤类型hash与btree
1.
#我们可以在创建上述索引的时候,为其指定索引类型,分两类
2.
hash类型的索引:查询单条快,范围查询慢
3.
btree类型的索引:b+树,层数越多,数据量指数级增长(我们就⽤它,因为innodb默认⽀持它)
4.
5.
#不同的存储引擎⽀持的索引类型也不⼀样
6.
InnoDB ⽀持事务,⽀持⾏级别锁定,⽀持 B-tree、Full-text 等索引,不⽀持 Hash 索引;
7.
MyISAM 不⽀持事务,⽀持表级别锁定,⽀持 B-tree、Full-text 等索引,不⽀持 Hash 索引;
8.
Memory 不⽀持事务,⽀持表级别锁定,⽀持 B-tree、Hash 等索引,不⽀持 Full-text 索引;
9.
NDB ⽀持事务,⽀持⾏级别锁定,⽀持 Hash 索引,不⽀持 B-tree、Full-text 等索引;
10.
Archive 不⽀持事务,⽀持表级别锁定,不⽀持 B-tree、Hash、Full-text 等索引;
1)索引⽅法 btree 可以⽤于“ >、 < 、=”查询 ,如果查id=1000的数据建⽴索引后⼆分查最多13次就可以查出相应的数据;2)hash 不能做order by排序不能做⽤like模糊查询。
#4 慢查询优化的基本步骤
1.
0.先运⾏看看是否真的很慢,注意设置SQL_NO_CACHE
2.
1.where条件单表查,锁定最⼩返回记录表。这句话的意思是把查询语句的where都应⽤到表中返回的记录数最⼩的表开始查起,单表
每个字段分别查询,看哪个字段的区分度最⾼
3.
4.
5.
4.了解业务⽅使⽤场景
6.
5.加索引时参照建索引的⼏⼤原则
7.
6.观察结果,不符合预期继续从0分析
-
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论