位置: 编程技术 - 正文
推荐整理分享MySQL 随机函数获取数据速度和效率分析(mysql数据库随机取数据),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql随机抽取函数,mysql随机抽取数据50条,mysql数据库随机取数据,mysql随机抽取函数,mysql随机获取,mysql随机获取,mysql 随机取数,mysql随机获取,内容如对您有帮助,希望把文章链接给更多的朋友!
在mysql中带了随机取数据的函数,在mysql中我们会有rand()函数,很多朋友都会直接使用,如果几百条数据肯定没事,如果几万或百万时你会发现,直接使用是错误的。下面我来介绍随机取数据一些优化方法。
SELECT * FROM table_name ORDER BY rand() LIMIT 5;
rand在手册里是这么说的:
RAND()RAND(N)
返回在范围0到1.0内的随机浮点值。如果一个整数参数N被指定,它被用作种子值。
你不能在一个ORDER BY子句用RAND()值使用列,因为ORDER BY将重复计算列多次。然而在MySQL3.中,你可以做: SELECT * FROM table_name ORDER BY RAND(),这是有利于得到一个来自SELECT * FROM table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 的集合的随机样本。注意在一个WHERE子句里的一个RAND()将在每次WHERE被执行时重新评估。
网上基本上都是查询max(id) * rand()来随机获取数据。
但是这样会产生连续的5条记录。解决办法只能是每次查询一条,查询5次。即便如此也值得,因为万条的表,查询只需要0.秒不到。
上面的语句采用的是JOIN,mysql的论坛上有人使用
我测试了一下,需要0.5秒,速度也不错,但是跟上面的语句还是有很大差距
后来请教了baidu,得到如下代码
完整查询语句是:
最后在php中对这两个语句进行分别查询次,
前者花费时间 0. 秒
后者花费时间 0. 秒
执行效率需要0. sec.可惜的是,只有mysql 4.1.*以上才支持这样的子查询.
注意事项 查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低。
以上的sql语句最后一条,本人实际测试通过,W数据,瞬间出结果。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
mysql group by having 实例代码 mysqlgroupbyhaving实例注意:使用groupby的时候,SELECT子句中的列名必须为分组列。如下实例必须包括name列名,因为name是作为groupby分组的条件。实例:我的
php mysql insert into 结合详解及实例代码 phpmysqlinsertinto结合详解ySQLINSERTINTO语句在实际应用中是经常使用到的语句,所以对其相关的内容还是多多掌握为好。向数据库表插入数据INSERTINTO语句用
Mysql 删除数据库drop database详细介绍 Mysql删除数据库dropdatabase方法-:使用cmd模式下载删除mysqldropdatabaseschool;此命名删除了school数据库。但如果school数据库不存在就会报错。所以完整的语句
标签: mysql数据库随机取数据
本文链接地址:https://www.jiuchutong.com/biancheng/349302.html 转载请保留说明!友情链接: 武汉网站建设