在随机执行SELECT时索引数据库表会有多大差异

时间:2011-05-30 08:24:43

标签: mysql database select

最近,我为调查开发了一个非常简单的网络应用程序。我使用MySQL来存储我的数据。每个用户从数据库表中“随机”获取一个问题。我需要知道索引是否有助于提高检索性能,而“SELECT”每次选择随机记录。 感谢

这是我正在使用的SQL命令:

'SELECT * FROM iens2.review_phrases ORDER BY RAND() LIMIT 1'

3 个答案:

答案 0 :(得分:1)

如果您的“随机”数字是问题序列列的序列号(没有间隙),那么索引该序列列肯定有帮助:

WHERE question.sequence_no = :rand

如果你只是

ORDER BY RAND()

然后一个索引无法帮助。与

ORDER BY id
LIMIT 1 OFFSET :rand

order by子句的字段索引会有所帮助,但性能仍然比按序列号访问问题更糟糕

答案 1 :(得分:0)

是的,索引肯定有助于你。这会提高性能

答案 2 :(得分:0)

这会有所帮助,随机选择它们需要在某个时刻获取数据,这些索引适用于。