首頁 >後端開發 >php教程 >mysql多表查询+分页如何实现最优?

mysql多表查询+分页如何实现最优?

WBOY
WBOY原創
2016-06-06 20:50:341408瀏覽

问的并不是如何联合查询,只是看到有人说对于大数据量来说最好不要使用多表联合查询,因此想要知道怎样写sql从多表获取分页好的数据列表才是最优的。
补充:假如有两张表:A表是主表、而B表中的数据是查询A表的筛选条件之一

回复内容:

问的并不是如何联合查询,只是看到有人说对于大数据量来说最好不要使用多表联合查询,因此想要知道怎样写sql从多表获取分页好的数据列表才是最优的。
补充:假如有两张表:A表是主表、而B表中的数据是查询A表的筛选条件之一

先查出一张表记录的ids,然后用在另一张表使用 in 查询

没有具体的业务场景谈优化都是耍流氓啊.
在A表增加B表的冗余字段,直接在A表上做查询就可以取到一页的内容,并且关联的B表的其他信息也能直接取到,或者通过B表的id能在缓存中取到.

这样的优化会增加维护成本,但是范式级别越低,查询效率越高.

仅供参考.

有些特殊业务场景是必须要用联合查询的吧。不能单纯的盲目优化。
ids in查询,如果ids取出来就几万个。那还不如直接联合查询呢。虽然这方案很好。

优化是指在不影响业务的前提下,如果只是为了优化而优化就╮(╯▽╰)╭

分页可以参考http://segmentfault.com/q/10100000001...

至于优化查询,本质上说,先要优化数据结构,仔细想想你是否必须非要用两个表,一个行不行。还有你对数据库内置函数的了解程度,比如left(), right(), substring(), substring_index()。还有 mid(), substr()。不要动不动就LIKE等等,主要还是多写,根据实际应用场景来做出最优判断。

顺便一说MYSQL配置本身也可以进行很多优化,比如query_cache等等

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn