最近,我开发了一个非常简单的网络应用程序用于调查。我正在使用 MySQL 来存储我的数据。每个用户都会从数据库表中“随机”抽取一个问题。我需要知道索引是否有助于提高检索性能,而“SELECT”每次都会选择随机记录。 谢谢
这是我正在使用的 SQL 命令:
'SELECT * FROM iens2.review_phrases ORDER BY RAND() LIMIT 1'
最佳答案
如果您的“随机”数字是问题序列列的序列号(没有间隙),那么对该序列列建立索引肯定会有所帮助:
WHERE question.sequence_no = :rand
但是如果你只是
ORDER BY RAND()
那么索引就无济于事了。与
ORDER BY id
LIMIT 1 OFFSET :rand
order by 子句字段上的索引会有所帮助,但性能仍然比按序列号访问问题要差
关于mysql - 随机执行 SELECT 时为数据库表建立索引会有多大区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6173917/