欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-24 20:40:08
1 当你有100万条数据的时候怎么优化sql语句 ①.不要有超过5个以上的表连接(连接的表越多,其编译的时间和连接的开销也越大,性能越不好控制,最好是把连接拆开成较小的几个部分逐个顺序执行) ②.考...

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语句时或者设计到对多个表的操作时就要考虑使用存储过程