mysql-索引
21.6.12【索引的分类】
单列索引:索引加在一个列上
普通索引(normal):
alter table user add index `name`(`name`)
唯一索引(unique):
alter table user add unique index `code`(`code`);
主键索引(primary):
alter table user add primary key(`code`);
组合索引():
alter table user add index `id_name`(`id`,`name`);
全文索引(fulltext):
alter table user add fulltext index `code`(`code`);
空间索引(spatial):
21.6.12【索引的规则和使用】
哪些字段适合加索引:
【适合】
1.与其他表进行连接时,连接的字段应该建立索引
2.经常出现where中的字段,应该建立索引
【不适合】
1.频繁数据更改的表,不适合建立太多索引
2.索引应该建立在小字段上,大文本字段不适建立索引
不使用索引的情况:
1.若mysql估计扫全表比用索引更慢,则不用索引
2.or的前后没有同时使用索引,则不用索引
3.like 以%开始的,则不用索引
4.字段参与计算、函数的,则不用索引
5.隐式转换的则不用索引
6.不等于的字段不参与索引
7.复核字段不遵循最左原则的不用索引
explain 详解:
id:选择标识符
select_type:表示查询的类型。
table:输出结果集的表
partitions:匹配的分区
type:表示表的连接类型
possible_keys:表示查询时,可能使用的索引
key:表示实际使用的索引
key_len:索引字段的长度
ref:列与索引的比较
rows:扫描出的行数(估算的行数)
filtered:按表条件过滤的行百分比
Extra:执行情况的描述和说明
相关文章
- 03-05使用Whoosh构建自己的搜索引擎、whoosh和jieba实现中文全文检索
- 03-05LeetCode-每日打卡-852. 山脉数组的峰顶索引
- 03-05852. 山脉数组的峰顶索引
- 03-05852. 山脉数组的峰顶索引
- 03-05852. 山脉数组的峰顶索引【二分 C++】
- 03-05852. 山脉数组的峰顶索引 力扣 简单
- 03-05LeetCode #852 山脉数组的峰顶索引
- 03-05[leetcode]852.山脉数组的峰顶索引
- 03-05JS Leetcode 852. 山脉数组的峰顶索引图解分析,高高的山峰一起吹山风吧。
- 03-05python – Pandas中双括号`[[…]]`和单括号`[..]`索引之间的区别