我有两张桌子:
formfill
包含idmessage
,value
,namefield
列。fields
包含namefield
,typefield
,optionsfield
列。我没有任何主键。关系在名称字段列之间。
我的查询是:
select e.namefield,e.typefield,e.optionsfield,b.value,b.id
from fields as e
left join formfill as b on e.namefield = b.namefield and b.id=1011
这个查询没问题。但它运行得非常慢(大约10秒钟)。我怎样才能让它更快?
答案 0 :(得分:1)
您可能应该使用
发布您的查询计划http://dev.mysql.com/doc/refman/5.0/en/explain.html
但查询执行速度低意味着
您没有索引,引擎必须执行全扫描,因此最好在具有“=”操作的字段上添加索引。如果您使用=或<>,则索引的类型可以是'hash',而对于<<<<或者>
右表中的行数大于左表中的一个,大小为10或更多,所以索引没有多大帮助,你需要考虑分区数据