首页  >  文章  >  数据库  >  MySQL中如何高效生成一定范围内的随机值?

MySQL中如何高效生成一定范围内的随机值?

Patricia Arquette
Patricia Arquette原创
2024-10-26 11:58:02506浏览

  How to Efficiently Generate Random Values Within a Range in MySQL?

在 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 Select 大约花费了 0.019 秒。
  • PHP Select 花费了大约 0.02 秒.

因此,当仅需要随机值时,MySQL 的性能略优于 PHP(约 2-3%)。但是,如果返回额外的列,MySQL 会落后 PHP 3-4%。

优化指南

为了获得最佳性能,请使用 MySQL 生成随机值,如果仅需要随机值。如果需要额外的列,请考虑使用 PHP 以获得更高的效率。

以上是MySQL中如何高效生成一定范围内的随机值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn