本文介绍了ORDER BY RAND() 函数需要很长时间才能在 mysql 中执行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我必须在 MYSQL 查询
中使用 RAND 函数.如果我在 sql 查询中使用这个函数,那么这需要大约 0.7962 秒.但是如果我不使用它,那么这个工作可以在 0.0009 秒内正常工作.如何使用 RAND 函数使 sql 查询更快.
I have to use RAND function in MYSQL query
. If I use this function in sql query then this take near about 0.7962 sec. But if I use it without then this work fine with 0.0009 sec. How I can make sql query faster with RAND function.
我的查询
SELECT
posts.ID,
posts.post_content,
posts.post_title,
posts.post_date,
posts.post_name
FROM posts
WHERE posts.post_type = 'post'
AND posts.post_status = 'publish'
ORDER BY RAND() LIMIT 0, 24
推荐答案
我去解决方案.
SELECT p1.ID, p1.post_content, p1.post_title, p1.post_date, p1.post_name
FROM posts as p1 JOIN
(SELECT CEIL(RAND() *
(SELECT MAX(ID)
FROM posts)) AS id)
AS p2
WHERE p1.ID >= p2.id
ORDER BY p1.ID ASC
LIMIT 0, 24
这比我的查询快.
这是解决方案.
谢谢
这篇关于ORDER BY RAND() 函数需要很长时间才能在 mysql 中执行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!