更快地进行mysql查询,或建议替代方案

时间:2014-07-08 13:40:11

标签: mysql database performance database-performance query-performance

大家好我有一个超过250k记录的大型数据库, 数据库是mysql,现在我正在使用navicat来管理它

但是查询需要很长时间来检索一个简单的结果集,如:

select count(my_column)
from my_table
where my_other_column = 123456

我真的不能让这个查询花费那么长时间,我需要一个替代mysql,或者某种方式来优化它以使其更快

目前这些表格是mysam,不确定是否是问题,如果是,我该如何修改它们?

1 个答案:

答案 0 :(得分:4)

对于此查询:

select count(my_column)
from my_table
where my_other_column = 123456

您需要my_table(my_other_column, my_column)上的索引。请注意,这是一个复合索引,它与两个单独的索引不同。您可以使用以下方法创建它:

create index idx_mytable_other_my on mytable(my_other_column, my_column)

此类索引称为查询的“覆盖索引”。不需要原始数据页面,因为查询所需的所有数据都在索引中。