Şöyle bir mantık kurabilirsin,
Eğer performansa dayalı rastgele 10 video göstertmek istiyorsan, bu videoların ardışık olmaları sorun olmaz diyorsan şunu kullan.
$rasgele_sayi = mt_rand(1, 5000000);
$random_sql = "SELECT * FROM " . $table . "
WHERE " . $videolar . " >= " . $rasgele_sayi . "
ORDER BY " . $videolar . " ASC
LIMIT 10";
bu şekilde direk rand yerine kullanmaktan kat kat hızlı çekti. bende şu şekil bir mantık ile çektim. hangisi daha sağlıklı acaba sizce ,
$sql = $this->query_array("SELECT id,title,thumb,views,liked,duration FROM videos AS y1
INNER JOIN (SELECT ( RAND() * (SELECT MAX(id) FROM videos) ) AS rand_id) AS y2
WHERE y1.id >= y2.rand_id
LIMIT 20");
return $sql;