Вопрос по оптимизации запросов к MySQL
имеется база примерно на 100 тысяч записей, каждая запись состоит из двух числовых полей. требуется получить две случайных записи из базы.
как правильно сделать:
1. Делать три запроса: первый 1 узнаем кол-во записей всего, далее еще одним запросом получаем две записи условием WHERE
2. делаем один запрос, получаем все записи и там выбираем 2 случайных.
какие варианты могут быть еще, при условии что посещаемость у проекта большая
ды вроде нашел что-то типа этого http://hudson.su/2010/09/16/mysql-optimizaciya-order-by-rand/
пытаюсь разобраться и оптимизировать под 2 записи
Лучше так:
SELECT * FROM table ORDER BY rand() LIMIT 2
ругаются на такой запрос в интернетах, говорят медленно... есть практика использования
Нельзя так делать на больших таблицах, вы убьете сервер! функция ранд в данной ситуации будет отрабатываться только тогда, когда будут собраны ВСЕ записи удовлетворяющие запросу, после чего только будет выбрана случайная строка.