title: performance of rand()
body: <p>I have heard that I should avoid using 'order by rand()', but I really need to use it. Unlike what I have been hearing, the following query comes up very fast.</p>
  
  <pre><code>select 
  
      cp1.img_id as left_id,
      cp1.img_filename as left_filename,
      cp1.facebook_name as left_facebook_name,
      cp2.img_id as right_id, 
      cp2.img_filename as right_filename,
      cp2.facebook_name as right_facebook_name    
  
  from 
  challenge_photos as cp1
  cross join 
  challenge_photos as cp2
  where
  (cp1.img_id &lt; cp2.img_id) 
  and 
  (cp1.img_id,cp2.img_id) not in ((0,0)) 
  and 
  (cp1.img_status = 1 and cp2.img_status = 1) 
  order by rand() limit 1
  </code></pre>
  
  <p>is this query considered 'okay'? or should I use queries that I can find by searching "alternative to rand()" ?</p>