gpt4 book ai didi

php - ORDER BY RAND() 的性能受到影响吗?

转载 作者:行者123 更新时间:2023-11-29 08:53:14 27 4
gpt4 key购买 nike

Possible Duplicate:
MySQL: Alternatives to ORDER BY RAND()

我在一个包含 1000~2000 条记录的表中随机抽取大约 20 行,其中大部分或全部都附加了 WHERE 子句。这个增长不会太多,每年大概 150。

我还查看最多几千个用户,但此查询属于该网站的热门区域。

我真的需要担心 ORDER BY RAND() 所涉及的性能影响吗?我听过所有关于性能问题的恐怖故事,但当这么小的 table 不断受到攻击时,我还没有发现太多。

我无法为此做缓存。

最佳答案

ORDER BY RAND() 很容易使用和忘记,但你必须意识到 MySQL 需要检查每一行,因为 RAND() 不是常量。

检查 1000 行应该不是问题,但要密切关注一段时间内的查询性能。如果您只需要一条记录,您可以在这里找到答案:ORDER BY RAND() alternative

编辑

你说你不能做缓存,但即使是一个小的生成的 .php 文件也是一个缓存:)

例如,您可以将 ID 列表存储在缓存中;每次插入或删除数据库记录时都会更新它。然后,您使用 PHP 提取 20 个随机 ID,并使用它们来查询数据库(例如使用 IN (4, 7, 10, 45, etc.)

更新

正如OP所指出的,如果查询也有条件(即并非表中的每个项目都有资格被选择),这是不可能的。

关于php - ORDER BY RAND() 的性能受到影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10593603/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com