Как я могу оптимизировать функцию 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

Ответы на вопрос(8)

Ваш ответ на вопрос