【发布时间】:2012-06-26 10:27:19
【问题描述】:
我有以下 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 服务器宕机。
如何解决这个问题...任何其他快速编写此查询的方法
【问题讨论】:
-
使用
explain分析您的查询并添加适当的索引。 -
如果索引没有帮助,您可以触发 3 个差异查询,它将在 20 秒内完成...... :)
标签: mysql