我们在系统优化的时候,常见的一个操作,就是把复杂的联表操作,拆解成多个单表操作,然后在应用程序中进行联接。为什么要 这样做呢?相信大家都可以列出几点。不过《高性能MySQL 第四版》对此有很好的总结,值得细品。摘录如下:
让缓存的效率更高。应用程序中,简单查询对应的代码也会更简单,也就更好设计缓存,应用程序可以拆开来,缓存其中的结果,以便 下次使用复用
将查询分解后,执行单个查询可以减少锁的竞争
在应用层做联接,可以更容易对数据库进行拆分,更容易做到高性能和可扩展
查询本身的效率可能也会有所提升
可以减少对冗余记录的访问,MySQL联表操作可能会访问很多数据,并且可能是重复的访问
除此之外,我个人的补充: