Поправка к предыдущей статье

Posted on March 20, 2009
В предыдущей статье я совершил довольно большую ошибку, спасибо Dmytro Shteflyuk за критику. На самом деле я выбрал самый медленный способ выборки случайной строки:

SELECT * FROM banners ORDER BY rand() LIMIT 0,1
Более быстрый способ подразумевает 2 запроса:

SELECT COUNT(*) FROM banners;
-- Мы выбрали число строк. Теперь в коде выберем от них случайное значение
-- и второй запрос на выборку строки и подставим его вместо rnd
SELECT * FROM banners LIMIT rnd,1;

Comments
  1. Макс ЛапшинMarch 22, 2009 @ 04:32 PM
    А мне и этот способ не нравится тем, что в реальности тот же мускль скорее всего весь резалт сет прочитает. Можно попробовать сделать как-то так: подсчитать средний коэффициент разреженности, подобрать 5-10 возможных ID и вытянуть напрямую по ним.
  2. Ачё?April 12, 2009 @ 08:32 PM
    Макс Лапшин, для этого есть explain