【发布时间】:2010-11-10 00:29:25
【问题描述】:
有一天我怀疑我必须学习 hadoop 并将所有这些数据转移到一个非结构化数据库中,但我惊讶地发现性能在如此短的时间内如此显着下降。
我有一个不到 600 万行的 mysql 表。 我在这张表上做了一个非常简单的查询,并且相信我有所有正确的索引。
查询是
从事件中选择日期、时间,其中 venid='47975' AND date>='2009-07-11' ORDER BY date解释返回
id select_type table type possible_keys key key_len ref rows Extra 1 简单更新显示范围 date_idx date_idx 7 NULL 648997 使用 where所以据我所知,我使用的是正确的索引,但是这个查询需要 11 秒才能运行。
数据库是MyISAM,phpMyAdmin说表是1.0GiB。
这里有什么想法吗?
编辑: date_idx 是 date 和 venid 列的索引。那应该是两个单独的索引吗?
【问题讨论】:
-
您的解释查询说它必须扫描 648997 行(可能它没有足够有效地使用索引。如果是我,我会单独索引列)。实际返回了多少行?
标签: mysql performance indexing