当数据库有100万条数据的时候怎么优化SQL语句?

1

当你有100万条数据的时候怎么优化sql语句

①.不要有超过5个以上的表连接(连接的表越多,其编译的时间和连接的开销也越大,性能越不好控制,最好是把连接拆开成较小的几个部分逐个顺序执行)

②.考虑使用临时表或表变量存放中间结果

③.修改like程序,去掉前置百分号,like语句因为前置百分号而无法使用索引,会导致全表扫描

④.限制结果集,要尽量减少返回的结果行,包括行数和字段列数

⑤.使用存储过程封装复杂的sql语句或商业逻辑,因为存储过程的执行计划可以被缓存在内存中较长时间,减少了重新编译的时间,还有存储过程可以减少客户端和服务器的频繁交互。

⑥.尽量避免在where子句中使用!=或<>操作符,否则会进行全表扫描,应避免全表扫描,考虑在where及order by设计的列上建立索引

⑦.尽量避免在where子句中对字段进行null值判断,否则会进行全表扫描,例如select id from person where num is null,可以在num上设置默认值0,确保表中num列没有null列,然后使用查询:select id from person where num=0

⑧.尽量避免在where子句中使用or来连接条件,否则会进行全表扫描,例如select id from person where num=05 or num=22,优化后:select id from person where num=05 union all select id from person where num=22

2

数据库什么时候用到存储过程

当一个事务涉及到多个sql语句时或者设计到对多个表的操作时就要考虑使用存储过程

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐