MYSSQL随机记RAND录要慎用

最近在维护一个图片平台,里面有个猜你喜欢,为了让用户每次看到的不一样内容,用了随机记录
在laravel 的 Eloquent ORM中使用inRandomOrder(field),可以实现随机记录,开始运作妥妥的,最近发现网站越来越慢,有时候还出现卡死现象
top命令查询了一下主机的资源情况,发现mysql一直占用CPU资源,而且还是满负荷,在看了下mysql slow log(慢日志),答案找到了,果真是mysql 的 RAND惹的祸
数据表目前大概17w记录,rand情况下一条查询用到17s(视乎主机配置)
问题找到了,只能放弃rand,果断改需求,把rand去掉,网站速度马上上去了!!!

看来以后还是要慎用mysql RAND随机记录,数据量大的前提下勿用

您可能还喜欢...