我有以下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服务器宕机。
如何解决这个问题...以任何其他方式快速编写此查询
发布于 2012-06-25 15:03:32
我敢打赌您还没有在这些字段上添加索引:tag_type_id
和meter_type_id
。这是一个关于如何正确地在字段上添加索引的。
https://stackoverflow.com/questions/11184712
复制相似问题