避免 | 建议 |
1、避免使用子查询 | 使用JOIN链接 |
2、少用select * | 使用需要的具体字段 |
3、不要将null作为条件 | 可设置null默认为0 |
4、避免使用or来连接条件 | 使用union All替代 |
5、避免在索引上使用计算 | where age + 1 =10,任何对索引的操作都将导致表扫描 |
6、少使用like条件 | 如果使用建议 ‘张%’ : 会走索引 |
7、连续数值条件,不用IN | 用BETWEEN |
8、少用字符型 | 尽量使用数字型字段 |
9、避免使用<>条件 | 用>、<、union替代 |
10、主键优化 | 1.采用批量插入(一次插入的数据不建议超过1000条) 2. 手动提交事务 3. 主键顺序插入 |
11、orderBy优化,多个排序字段,一个字段升序排序,另一个字段降序排序,则不走索引 | orderby字段全部使用升序排序或者降序排序,则都会走索引 |
12、limit优化 select * from sku limit 9000000, 10; | 覆盖索引加子查询形式进行优化select * from sku as s, (select id from sku order by id limit 9000000, 10) as a where s.id = a.id; |
13、count优化 | count(字段) < count(主键) < count(1) < count(*) |
14、innodb的行锁优化 `update student set no = '123' where name = 'test';`name没有索引,所以会把整张表都锁住 | 给name字段添加索引 |
15、满足最左前缀法则 尽量使用覆盖索引 | 左前缀法则:指的是查询从索引的最左列开始,并且不跳过索引中的列。 如果跳跃某一列,索引将部分失效(后面的字段索引失效)。 覆盖索引:查询使用了索引,并且需要返回的列,在该索引中已经全部能找到 |
SQL优化的15条建议
最新推荐文章于 2024-04-10 14:56:14 发布
文章介绍了提高MySQL数据库性能的多种策略,包括避免子查询,使用JOIN替代,选择具体字段而非SELECT*,处理NULL值,优化OR条件,利用索引,注意ORDERBY和LIMIT的使用,以及COUNT函数和行锁的优化。强调了索引的有效利用和遵循最左前缀法则对于查询性能的重要性。
摘要由CSDN通过智能技术生成