sql 写法小总

it2022-05-05  130

1、慢SQL消耗了70%~90%的数据库CPU资源;

2、SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;3、SQL语句可以有不同的写法;下面是我总结的一些SQL常见的优化方法,每个案例都简单易懂,在开发过程中可以作为参考:1、不使用子查询例:SELECT * FROM t1 WHERE id (SELECT id FROM t2 WHERE name='hechunyang');子查询在MySQL5.5版本里,内部执行计划器是这样执行的:先查外表再匹配内表,而不是先查内表t2,当外表的数据很大时,查询速度会非常慢。在MariaDB10/MySQL5.6版本里,采用join关联方式对其进行了优化,这条SQL会自动转换为SELECT t1.* FROM t1 JOIN t2 ON t1.id = t2.id;但请注意的是:优化只针对SELECT有效,对UPDATE/DELETE子查询无效,固生产环境应避免使用子查询2、避免函数索引例:SELECT * FROM t WHERE YEAR(d) >= 2016;由于MySQL不像Oracle那样支持函数索引,即使d字段有索引,也会直接全表扫描。应改为----->SELECT * FROM t WHERE d >= '2016-01-01';3、用IN来替换OR低效查询SELECT * FROM t WHERE LOC_ID = 10 OR LOC_ID = 20 OR LOC_ID = 30;----->高效查询SELECT * FROM t WHERE LOC_IN IN (10,20,30);4、LIKE双百分号无法使用到索引SELECT * FROM t WHERE name LIKE '

转载请注明原文地址: https://win8.8miu.com/read-16168.html

最新回复(0)