[wp-trac] [WordPress Trac] #18836: ORDER BY RAND() is slow

WordPress Trac noreply at wordpress.org
Sat Apr 19 00:32:45 UTC 2025


#18836: ORDER BY RAND() is slow
-------------------------------------------------+-------------------------
 Reporter:  scribu                               |       Owner:  pbearne
     Type:  enhancement                          |      Status:  assigned
 Priority:  normal                               |   Milestone:  6.9
Component:  Query                                |     Version:
 Severity:  minor                                |  Resolution:
 Keywords:  needs-testing has-unit-tests has-    |     Focuses:
  patch early                                    |  performance
-------------------------------------------------+-------------------------

Comment (by SirLouen):

 I've passed my WP-Query benchmarking template and here are the results:

 [[Image(https://i.imgur.com/0RPY1sg.png)]]

 These are the 3 queries benchmarked in a pool of 10K posts,
 `$post_per_page` = 1K, 10 iterations each

 {{{#!php
 new WP_Query([
     'post_type' => 'post',
     'posts_per_page' => $posts_per_page,
     'orderby' => 'rand',
     'no_found_rows' => true,
     'cache_results' => false
 ]);

 new WP_Query([
     'post_type' => 'post',
     'posts_per_page' => $posts_per_page,
     'orderby' => 'date',
     'order' => 'DESC',
     'no_found_rows' => true,
     'cache_results' => false
 ]);

 new WP_Query([
     'post_type' => 'post',
     'posts_per_page' => $posts_per_page,
     'orderby' => 'title',
     'order' => 'DESC',
     'no_found_rows' => true,
     'cache_results' => false
 ]);
 }}}

 Tomorrow I will be checking the new implementation pushed by @pbearne to
 see if it actually improves the rand implementation and create a proper
 Patch testing report.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/18836#comment:25>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list