0

私はmysqlの最適化とインデックス作成にまったく慣れていませんが、新しいプロジェクトでは、インデックス作成をさらに使用して理解を深めることを試みます。

しかし、今は結合とgroup_concatに苦労しており、インデックスを作成しても正しく機能しません。tags.item_idにインデックスを設定しました。items.idにはプライマリインデックスがあります。

EXPLAINクエリからわかることは、このクエリにINDEXを使用していないことです。

EXPLAIN
SELECT i.id, i.title, i.content, GROUP_CONCAT(DISTINCT t.name SEPARATOR ",") as tags 
FROM items as i 
LEFT OUTER JOIN tags as t ON t.item_id = i.id 
WHERE i.id = 103 GROUP BY i.id

結果:

1   SIMPLE  i   const   PRIMARY PRIMARY 4   const   1   
1   SIMPLE  t   ref item_id item_id 5   const   4   

誰かが私を助けてくれて、私が間違っていることと、インデックスを使用して正しいクエリを取得するためにどのようにすべきかを説明してくれることを願っています。

4

1 に答える 1

0

MySql の関数にインデックスを作成することはできません。解決策は、テーブルの別の列にタグを格納してインデックスを作成することです。また、インデックス t.item_id ! 詳細については、 ここにアクセスしてください

于 2012-07-02T10:36:17.913 に答える