SQL里是否可以使用JOIN
这篇讲的是一个流传甚广的技术误区:很多公司出于“性能慢”的理由禁止程序员在SQL中使用JOIN。作者从这个常见的约定出发,通过一个查询最新帖子和用户信息的实例进行了直接对比。文章指出,用JOIN完成的操作,如果拆解成两次独立查询和代码层合并,其开销很可能更大,“用JOIN慢”其实是个没有严格论证的人云亦云的结论。 作者进一步点明了真正值得考虑的问题所在——它并非性能,而是系统架构的灵活性。当使用JOIN时,你隐含地假设了相关的表将永远部署在同一个数据库实例上。一旦项目发展,表可能因拆分而“离婚”到不同实例,届时所有用到JOIN的地方都可能需要重构。因此,文章给出的核心建议是:如果相关表未来有独立部署的可能,就要谨慎使用JOIN;否则,完全可以用。 所以,用JOIN慢往往不是问题的本质。下次如果听到别人以性能为由反对JOIN,或许可以指出,真正需要权衡的是对未来数据库架构变更的预判。