2

次の 3 つの MySQL innoDb テーブルがあります (table_name:column_list として表示):

meter_type: id, meter_type (primary key id)
tag_type: id, meter_type_id (primary key id, foreign key meter_type_id(meter_type table))
tag: id, tag_type_id(primary key id, foreign key tag_type_id(tag_type table))

タグ: id があります。レベル 1、レベル 2、またはレベル 3 の meter_type を検索したいのですが、クエリは次のとおりです。

SELECT m.`meter_type`
  FROM `tag` t  
          LEFT JOIN `tag_type` tt 
              ON tt.`id` = t.`tag_type_id`  
          LEFT JOIN `meter_type` m 
              ON m.`id` = tt.`meter_type_id`  
 WHERE t.`id` = '10' 

4〜4分かかると非常に遅く、このクエリによりmysqlサーバーがダウンします。

この問題を解決する方法...このクエリをすばやく作成する他の方法

4

1 に答える 1

2

このフィールドにインデックスを追加していないに違いありません:tag_type_idmeter_type_id。フィールドにインデックスを適切に追加する方法に関するMySQLドキュメントは次のとおりです。

于 2012-06-25T07:03:31.647 に答える