在一个有2个字段的表上,MySQL查询速度慢。

21 浏览
0 Comments

在一个有2个字段的表上,MySQL查询速度慢。

我有以下的查询:

SELECT id FROM gr_webimages; (~0.0040秒,500条记录)
SELECT id, parents FROM gr_webimages; (~0.0450秒,500条记录)

如你所见,唯一的区别是 "parents" 字段,它是一个 varchar(255) 类型。

("id" int(10) 主键)

第二个查询比第一个查询慢了10倍以上,且服务器没有使用任何索引。

有人能解释为什么它花费如此长的时间,以及如何加速这个查询吗?

0
0 Comments

在这个问题中,出现了一个MySQL查询在一个具有两个字段的表上运行缓慢的问题。第一个查询实际上可以在不触及表的情况下运行...它所需要的所有信息都在主键索引中可用,因此它只需通过索引来获取所需的信息。而第二个查询必须实际上从表中读取数据,这是一个相当大的读取操作...

根据上述信息,我们可以得出问题的原因是第二个查询需要从表中读取数据,而不仅仅是从索引中获取信息。解决这个问题的方法是使用索引来优化查询性能。

关于索引的详细信息可以在这里找到: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

另外,关于索引的问题,某些情况下了主键是索引的一种,也某些情况下了MySQL中主键是否自动创建索引的问题。根据这些讨论,我们可以得出结论,主键在MySQL中是自动创建索引的。

总之,解决这个问题的方法是使用索引来优化查询性能。

0