在1个表上有2个字段的MySQL查询速度慢

时间:2014-01-13 16:14:11

标签: mysql sql

我有以下疑问:

SELECT id FROM gr_webimages; (~0.0040 sec, 500 records)

SELECT id, parents FROM gr_webimages;  (~0.0450 sec, 500 records)

正如您所看到的,唯一的区别是“父”字段,它是varchar(255)类型。 (“id”int(10)主键) 第二个查询慢了10多倍,服务器没有使用任何索引。 任何人都可以解释为什么它需要这么长时间,我怎样才能加快这个查询?

1 个答案:

答案 0 :(得分:3)

第一个查询实际上可以在没有触及表的情况下运行...它需要的所有信息都可以在主键索引中使用,因此它只是通过索引运行以获取所需的信息。第二个查询实际上必须从表中读取,这是一个非常大的读取...

见这里:http://publib.boulder.ibm.com/infocenter/soliddb/v6r3/index.jsp?topic=/com.ibm.swg.im.soliddb.sql.doc/doc/using.indexes.to.improve.query.performance.html

“如果查询仅选择索引列,则查询可以直接从索引读取索引列值,而不是从表中读取。”