Дано: таблица mysql 1К записей
Задача: нужно выбрать случайные 5 записей,
SELECT * FROM table ORDER BY rand() LIMIT 0,5 --0.014628
Запрос достаточно медленный, попробуем по-другому.
Попробуем выбрать произвольные идентификаторы до основного запроса данных
SELECT id FROM table ORDER BY rand() LIMIT 1; --0.000592
SELECT id FROM table ORDER BY rand() LIMIT 1; --0.000385
SELECT id FROM table ORDER BY rand() LIMIT 1; --0.000374
SELECT id FROM table ORDER BY rand() LIMIT 1; --0.000380
SELECT id FROM table ORDER BY rand() LIMIT 1; --0.000377
-- всего 0.002075
-- или так, быстрее
SELECT id FROM table ORDER BY rand() LIMIT 0,5 --0.000483
-- сама выборка
SELECT * FROM table WHERE id IN (80,413,81,127,113) --0.000464
Добавлено : Вт Апр 10, 2012 10:33
Автор : surg30n
Просмотров : 13128
Читать дальше Комментировать