最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mysql的ORDERBYRAND()优化_MySQL

来源:动视网 责编:小采 时间:2020-11-09 18:41:32
文档

mysql的ORDERBYRAND()优化_MySQL

mysql的ORDERBYRAND()优化_MySQL:bitsCN.com mysql的ORDER BY RAND()优化 我们都知道,mysql里用到ORDER BY RAND()在数据量比较多的时候是很慢的,因为会导致mysql全表扫描,故也不会用到索引,所以ORDER BY RAND()用来随机时已经是到禁区里了,所以我们应该尽量避免使用ORDER BY R
推荐度:
导读mysql的ORDERBYRAND()优化_MySQL:bitsCN.com mysql的ORDER BY RAND()优化 我们都知道,mysql里用到ORDER BY RAND()在数据量比较多的时候是很慢的,因为会导致mysql全表扫描,故也不会用到索引,所以ORDER BY RAND()用来随机时已经是到禁区里了,所以我们应该尽量避免使用ORDER BY R


bitsCN.com

mysql的ORDER BY RAND()优化

我们都知道,mysql里用到ORDER BY RAND()在数据量比较多的时候是很慢的,因为会导致mysql全表扫描,故也不会用到索引,

所以ORDER BY RAND()用来随机时已经是到禁区里了,所以我们应该尽量避免使用ORDER BY RAND()才对,所以这个是需要用其他方法替代或者优化才行。

当我们随机一条数据时可以考虑一下:

[php] $DBI=new dbi2($__DBserver); $num=$DBI->result('select count(1) as num from article');//获取总条数,数据库引擎为MyISAM采用吧 $num=$num[0]['num']-1; $num=rand(1, $num); $list=$DBI->result('SELECT id FROM acticle ORDER BY viewcount DESC LIMIT ?,1',$num);//利用limit 

随机多条数据时,为了避免全表扫描,可以取出一小部分在随机,这个随机性会落在一个小范围内:

[php] $DBI=new dbi2($__DBserver); //在200条范围内取10条随机 $list=$DBI->result('SELECT id FROM (SELECT id FROM acticle ORDER BY viewcount DESC LIMIT ?)X ORDER BY RAND() LIMIT ?',200,10); 

bitsCN.com

文档

mysql的ORDERBYRAND()优化_MySQL

mysql的ORDERBYRAND()优化_MySQL:bitsCN.com mysql的ORDER BY RAND()优化 我们都知道,mysql里用到ORDER BY RAND()在数据量比较多的时候是很慢的,因为会导致mysql全表扫描,故也不会用到索引,所以ORDER BY RAND()用来随机时已经是到禁区里了,所以我们应该尽量避免使用ORDER BY R
推荐度:
标签: mysql 优化 mysql的
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top