SQL 优化 - 分治思想
优化之前:
功能开发前,先从数据入手。当数据结构已知,SQL可以尝试性预先设计和测试。对性能也有一个整体把握。
SQL的书写常常遇到性能较差的关联查询,主表关扩展表。如果条件同时跨越两个表以上,常常性能不理想。
思路:
将两张表需要放在where条件中的字段梳理清楚,比如where表A.xxx Or 表B.xxx的查询。可以拆分成两个 select 查询,分别将表A、B作为主表,再使用 union 链接两个查询的结果。效果就等同于 select A join B。而性能却能大幅提升。
亲测在mysql 5.6中可用。其他对于关联查询性能很差的,同样可以拆分条件,再union合并数据,进行尝试。
总结:
分治思想,把一个整体的较慢任务进行拆分成快速的有限子任务,在程序的一些场景应用,性能提升明显。
版权声明: 本文为 InfoQ 作者【墨凡】的原创文章。
原文链接:【http://xie.infoq.cn/article/7dd5a95f0912417e8746b69fa】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论