我的数据方案非常简单,我们说它是关于农场的
我想检索有关活动服务器场的所有数据,所以我只是做了类似的事情:
SELECT * FROM tableA LEFT JOIN tableB ON id_tableA=id_tableB WHERE is_active=1 ORDER BY id_tableA DESC;
现在查询需要15秒才能直接从sql shell执行,例如我想从tableB中检索所有数据,如:
SELECT * FROM tableB ORDER BY id_tableB DESC;
只需不到1秒(约1200行)...
如何改进原始查询?
THX
答案 0 :(得分:3)
在键上创建索引连接两个表..
检查此链接,如何在mysql中创建索引: http://dev.mysql.com/doc/refman/5.0/en/create-index.html
答案 1 :(得分:2)
您必须创建一个索引。
您可以创建以下索引:
的MySQL>在tableA上创建索引ix_a_active_id(id_tableA,is_active);
的MySQL>在tableB上创建索引ix_b_id(id_tableB);
这首先在id +是活动变量上创建一个索引。 第二个为tableB的id创建一个索引。