ホームページ >バックエンド開発 >PHPチュートリアル >3 つのテーブル、結合テーブル クエリ、この SQL をさらに最適化できますか?
c.username、c.sex、c.attentions、c.fans、a.を選択id
,a.content
,a.isnum
,a.times
,a.turm
,a.keep
,a.comments
,a.uid
,b.mini
,b.mednum
,b.maxs
FROM (wb_userinfo c LEFT JOIN wb_weibo a ON c.uid = a.uid)
LEFT JOIN wb_picture b ON a.id
= b.wid
WHERE a.uid
IN(SELECT follow
FROM wb_follow WHERE fans
= 27) OR a.uid
= 27 ORDER BY a.times
LIMIT 0,10;
c.username、c.sex、c.attentions、c.fans、a.を選択id
,a.content
,a.isnum
,a.times
,a.turm
,a.keep
,a.comments
,a.uid
,b.mini
,b.mednum
,b.maxs
FROM (wb_userinfo c LEFT JOIN wb_weibo a ON c.uid = a.uid)
LEFT JOIN wb_picture b ON a.id
= b.wid
WHERE a.uid
IN(SELECT follow
FROM wb_follow WHERE fans
= 27) OR a.uid
= 27 ORDER BY a.times
LIMIT 0,10;
便利な場合は、代わりに Union を使用して試してみることを検討してください
リーリー
使用方法 explain
投稿された分析レポートを見て、ref の値と行の値、インデックスの使用状況などを確認してください。接続されたテーブルをクエリする場合、私の通常の提案は、単純なクエリに分割することです。
SQL に関する限り、最適化の余地はあまりありません。SQL をいくつかの単純な SQL に分割し、コードに最終的なビジネス ロジックを実装することをお勧めします。
追記: SQL に出現しないようにしてくださいor
結合を使用しないでください