ホームページ > バックエンド開発 > PHPチュートリアル > mysql多表查询+分页如何实现最优?

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

WBOY
リリース: 2016-06-06 20:50:34
オリジナル
1400 人が閲覧しました

问的并不是如何联合查询,只是看到有人说对于大数据量来说最好不要使用多表联合查询,因此想要知道怎样写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等等

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート