6.3.1 一个复杂查询还是多个简单查询

有些时候将一个大查询分解为多个小查询是很有必要的.

6.3.2 切分查询

删除旧数据就是一个很好的例子.

  • 如果用一个大的语句一次性完成的话, 则可能需要锁住很多数据, 占满整个事务日志, 耗尽系统资源, 阻塞很多小的但重要的查询
  • 可以减少 MySQL 复制延迟

image.png

6.3.3 分解关联查询

在应用程序中进行关联:

image.png

分解关联查询的优势:

image.png

何时将关联放到应用程序中:

  • 应用能够方便地缓存单个查询的结果
  • 数据分布到不同的 MySQL 服务器上 (应该是指分库的场景)
  • 能够使用 IN() 的方式代替关联查询
  • 查询使用同一个数据表