MySQL
索引和explain
学习(二)
在上一次学习mysql
索引和explain
后,又观看了一些大佬的视频,补充之前一些遗忘的内容和可能有误的知识点
CREATE TABLE `demo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`age` int(3) DEFAULT NULL COMMENT '年龄',
PRIMARY KEY (`id`),
KEY `index_age` (`age`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
为什么有时候select * from demo会用到index_age这个索引呢?
之前说的索引失效情况太绝对了,大多数情况是那样的,在数据量大或者小数据库中未查询可能是俩种不同的表现。
在查询中非要用前置mysql面试题like
的模糊查询呢,应该如何优化呢?
答案:索引覆盖
范围查询索引失效排查方法
明明where后是有索引列>1 and 索引列<100000000这样正常使索引生效的语句,但在用explain执行时,却发现没有走索引,此时可以缩小范围逐步验证索引生效的
情况,最有可能就是因为数据量太大导致mysql认为直接全部扫描可能比走索引快些
where
总结图
key_len
的长度计算
视频笔记
欢迎大家访问我的个人小数据库站:https://www.chenmx.net
发表评论