Как я могу оптимизировать функцию ORDER BY RAND () в MySQL?
Я хотел бы оптимизировать свои запросы, поэтому я изучаю.mysql-slow.log
Большинство моих медленных запросов содержитORDER BY RAND()
, Я не могу найти реальное решение для решения этой проблемы. Theres является возможным решением вMySQLPerformanceBlog но я неЯ думаю, этого достаточно. На плохо оптимизированных (или часто обновляемых, управляемых пользователем) таблицахили мне нужно выполнить два или более запросов, прежде чем я смогу выбратьPHP
случайный ряд
Есть ли решение этой проблемы?
Дурацкий пример:
SELECT accomodation.ac_id,
accomodation.ac_status,
accomodation.ac_name,
accomodation.ac_status,
accomodation.ac_images
FROM accomodation, accomodation_category
WHERE accomodation.ac_status != 'draft'
AND accomodation.ac_category = accomodation_category.acat_id
AND accomodation_category.acat_slug != 'vendeglatohely'
AND ac_images != 'b:0;'
ORDER BY
RAND()
LIMIT 1