目录
4. 需要类型转换,比如字符串没有加‘’或“”(mysql5.7会直接报错,如果不加‘’)
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) COLLATE utf8mb4_bin NOT NULL,
`email` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL,
`phone` varchar(11) COLLATE utf8mb4_bin DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index_name_email_phone` (`name`,`email`,`phone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
SET FOREIGN_KEY_CHECKS = 1;
1.有or必全有索引


2.复合索引未用左列字段


3.like以%开头



4.需要类型转换,比如字符串没有加‘’或“”(mysql5.7会直接报错,如果不加‘’)
5.where中索引列有运算
6.where中索引列使用了函数
7.如果mysql觉得全表扫描更快时(数据少的表)

本文介绍了几种常见的SQL查询性能优化技巧,包括确保OR条件两侧都有索引、避免在复合索引查询时跳过左侧字段、避免以%开头的LIKE查询、保持数据类型一致性、不在索引列上进行运算及函数调用等。此外还提到了MySQL在某些情况下会选择全表扫描而非使用索引。



420

被折叠的 条评论
为什么被折叠?



