摘自《高性能MySql》
针对select * 问题 ,会导致引擎无法使用索引覆盖扫描,还会带来额外的I/O,内存和cpu
如果查询需要扫描大量的数据,但是只返回少数行的数据的解决方法
1.使用覆盖索引,把需要用的数据列都放到索引中,这样存储引擎无须回表获取对应行就可以返回结果
2.改变库表的结构,使用单独的汇总表
3.重写这个复杂的查询
分解关联查询的优势
1.让缓存的效率更高
2.将查询分解后,执行单个查询可以减少锁的竞争
3.在应用层做关联,可以更容易对数据库进行拆分,更容易做到高性能的可扩展。