我有以下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 我想找到level_type,它是1级,2级或3级。 我的查询是
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服务器崩溃。
如何解决这个问题...以速度
编写此查询的任何其他方式答案 0 :(得分:2)
我敢打赌你没有在这些字段上添加索引:tag_type_id
和meter_type_id
。以下是关于如何在字段中正确添加索引的 MySQL Documentation 。