一条大Sql还是多条小Sql

2015-08-21 veryyoung 更多博文 » 博客 » GitHub »

原文链接 http://veryyoung.me/blog/2015/08/21/big-sql-or-some-small-sqls.html
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


在开发过程中很容易遇到去多张表查询数组组合成一个对象的场景。

有两种方案:

  1. 一条大sql直接搞定
  2. 把大sql拆分成多条小sql,在程序代码里面再组装对象

<!-- more -->

下面分别分析下各自的优缺点:

大sql

优点:一目了然,程序代码简洁,只需要建立一个连接,在数据量小的情况下效率会高很多。

缺点:在数据量大的情况下响应慢,可能一条大SQL就把整个数据库堵死。垂直拆分情况下sql改动会很大。

多条小sql

优点:在数据量大的情况下效率高。对垂直拆分友好。

缺点:程序代码会变得异常啰嗦,难以维护。


各有利弊,要权衡使用场景。

如果在表数据量巨大的情况下或者数据字段比较有可能做垂直切分的情况下建议或者在做报表这种耗时操作的情况下建议小sql。

在表结构相对稳定,数据量不大的情况下墙裂建议大sql。