MySQL:从特定列中选择值非常慢
  我有一个叫做key_word的mysql数据库。  它有3列,2300万行。 
请看下面的查询。
SELECT `indexVal` FROM `key_word` WHERE `hashed_word`='001'
  这个查询大约需要6秒钟来显示结果。  结果包含169669行。  这非常慢。  但是,我注意到,如果我试图在indexVal获取记录,就会发生这种情况。  以下所有查询都非常快。 
SELECT `primary_key` FROM `key_word` WHERE `hashed_word`='001'
SELECT `hashed_word` FROM `key_word` WHERE `indexVal`=0
  所有这3列都是分开索引的,所以我不明白为什么它很慢,当我试图通过搜索hashed_word从indexVal获取数据时 
以下是我的表结构。

以下是有关表格的更多信息
  那么,为什么从indexVal搜索时从hashed_word中选择的速度很慢?  我该如何解决这个问题? 
UPDATE
根据要求,我发布了结果
EXPLAIN SELECT `indexVal` FROM `key_word` WHERE `hashed_word`='001'
下面
UPDATE
  SHOW VARIABLES LIKE '%query_cache_size%'; SHOW VARIABLES LIKE '%query_cache_type%'; SHOW VARIABLES LIKE '%query_cache_size%'; SHOW VARIABLES LIKE '%query_cache_type%';  在下面 
  SELECT primary_key FROM key_word WHERE hashed_word='001'快于SELECT indexVal FROM key_word WHERE hashed_word='001'因为在InnoDB中,主键值始终包含在任何二级索引中;  这意味着primary_key是从索引中读取的。  然而,在第二个查询中,MySQL首先从索引读取主键,而不是从表格行读取indexVal的值。  换句话说,它持续2倍的磁盘读取。 
  您可以尝试通过hashed_word和indexVal ( indexVal顺序)进行索引。 
  该索引对于基于hashed_word的标准进行选择将很快,并且该索引在索引数据中包含indexVal ,因此不需要从磁盘读取数据。 
上一篇: MySQL : Selecting values from a specific column is very slow
