MySQL离开了连接优化

时间:2012-08-31 15:56:32

标签: mysql sql optimization

我有两张桌子:

  • formfill包含idmessagevaluenamefield列。
  • fields包含namefieldtypefieldoptionsfield列。

我没有任何主键。关系在名称字段列之间。

我的查询是:

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秒钟)。我怎样才能让它更快?

1 个答案:

答案 0 :(得分:1)

您可能应该使用

发布您的查询计划

http://dev.mysql.com/doc/refman/5.0/en/explain.html

但查询执行速度低意味着

  • 您没有索引,引擎必须执行全扫描,因此最好在具有“=”操作的字段上添加索引。如果您使用=或<>,则索引的类型可以是'hash',而对于<<<<或者>

  • 右表中的行数大于左表中的一个,大小为10或更多,所以索引没有多大帮助,你需要考虑分区数据