在 MySQL 中生成两个值之间的随机值
寻求一个可以返回指定范围内的随机值的 SQL 查询,
;选择 RAND(min_v, max_v) foo [..];这不是一个有效的方法,因为兰德有不同的目的。虽然公式 (RAND() * (max-min)) min 看起来很有前途,但它会产生需要舍入的浮点值,从而使过程变得复杂。
MySQL 的舍入方法:最佳解决方案
使用 ROUND((RAND() * (max-min)) min) 是 MySQL、ActionScript、JavaScript 和 Python 中生成一定范围内的随机值的首选方法。与 PHP 替代方案相比,这种方法高效便捷,简化了任务。
PHP 与 MySQL 性能
确定 PHP 或 MySQL 是否更适合生成大量随机值,进行了基准测试。
对于 100,000 次迭代:
因此,当仅需要随机值时,MySQL 的性能略优于 PHP(约 2-3%)。但是,如果返回额外的列,MySQL 会落后 PHP 3-4%。
优化指南
为了获得最佳性能,请使用 MySQL 生成随机值,如果仅需要随机值。如果需要额外的列,请考虑使用 PHP 以获得更高的效率。
以上是MySQL中如何高效生成一定范围内的随机值?的详细内容。更多信息请关注PHP中文网其他相关文章!