SQL优化--分解大查询
将一个大查询切分成多个小查询执行,每个小查询只完成整个查询任务的一小部分,每次只返回一小部分结果。
删除旧的数据分解
如果只用一条语句一次性执行一个大的删除操作,则可能需要一次锁住很多数据,占满整个事务日志,耗尽系统资源、阻塞很多小的但重要的查询。将一个大的删除操作分解成多个较小的删除操作可以将服务器上原本一次性的压力分散到多次操作上,尽可能小地影响MySql性能,减少删除时锁的等待时间。同时也减少MySql主从复制的延迟。
分解关联查询
对每个要关联的表进行单表查询,将结果在应用程序中进行关联,关联查询拆解成多个单表查询有如下有点:
- 让缓存的效率更高。如果缓存的是关联查询的结果,那么其中的一个表发生变化,整个缓存就失效了。
- 可以减少锁的竞争
- 更容易对数据库进行拆分,更容易做到高性能和可扩展。
- 查询本身的效率也有可能会有所提升。
立志如山 静心求实
浙公网安备 33010602011771号