大家好我有一个超过250k记录的大型数据库, 数据库是mysql,现在我正在使用navicat来管理它
但是查询需要很长时间来检索一个简单的结果集,如:
select count(my_column)
from my_table
where my_other_column = 123456
我真的不能让这个查询花费那么长时间,我需要一个替代mysql,或者某种方式来优化它以使其更快
目前这些表格是mysam,不确定是否是问题,如果是,我该如何修改它们?
答案 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)
此类索引称为查询的“覆盖索引”。不需要原始数据页面,因为查询所需的所有数据都在索引中。