标签:多行 主键索引 数据 限制 其他 操作 增删改 高并发 频繁
合理的建立索引可以加快数据查询,例如,学校图书管为每一本书编号,根据编号可以快速锁定一本书所在位置。MySQL索引默认B+树索引。索引虽然能够提高检索效率,但同时也会降低更新的速度,因为
insert 、update、delete
也会操作索引文件,会调整因为更新等操作带来的键值变化后的索引信息。
primary key
,每个表中只能有一个主键可以使用
explain
关键字模拟优化器执行sql查询语句,从而分析查询语句或者表结构的性能瓶颈。通过查看执行计划,可以了解到表的读取顺序、数据读取操作、哪些索引可以使用、哪些索引被实际使用、表之间的引用、每张表中有多少行被优化器查询
explain select * from tz_order a left join tz_order_item b on b.order_number = a.order_number where b.order_number = 1146347329394184192
id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | b | ALL | order_number | 7 | 14.29 | Using where | ||||
1 | SIMPLE | a | eq_ref | order_number_unique_ind | order_number_unique_ind | 152 | yami_shops.b.order_number | 1 | 100 |
表示实际操作中加载表的顺序,可以相同也可以不相同,如果id相同则从上往下依次加载执行,不相同则id越大对应的表越先加载。
<、>、in、between
这种范围扫描。可能应用到这张表的索引,查询涉及到的字段上若存在索引,则列出,但是不一定会使用。
实际使用到的索引,如果是null,则没有使用索引,如果查询中使用了覆盖索引,则该索引仅会出现在key列表中
表示索引中使用的字节数,计算查询中索引的长度,在不损失精度的情况下,越小越好,这个值显示的是索引字段的最大可能长度,不是实际长度
显示索引的哪一列被使用
根据表统计信息以及索引选用情况,大致估算找到所需记录需要扫描的行数
文件排序
select * from A where id in (select id from B)
--> B的数据小于Aselect * from B where exists (select 1 from A where A.id = B.id)
---> B的数据小于A标签:多行 主键索引 数据 限制 其他 操作 增删改 高并发 频繁
原文地址:https://www.cnblogs.com/QullLee/p/12266967.html