Вопрос № 151625: Привет! Что быстрее будет работать: 1) "SELECT text from mytable order by rand() limit 1"; 2) "SELECT max(id) from mytable" с последующим выбором в php случайного id и повторным запросом к базе данных за знач...
Вопрос № 151.625
Привет!
Что быстрее будет работать:
1) "SELECT text from mytable order by rand() limit 1";
2) "SELECT max(id) from mytable" с последующим выбором в php случайного id и повторным запросом к базе данных за значением text?
Отвечает: Seprize
Здравствуйте, Прим Палвер! Вообще два запроса будет скорее всего выполняться дольше чем один.
В конкретном примере думаю быстрее всего будет $sql = "SELECT COUNT(*) FROM `mytable`"; а потом $sql = "SELECT `text` from `mytable` limit {$from},1"; где $from=rand(1,$count)-1; использование второго вашего варианты чревато тем, что может не оказаться такого id p.s. скорость запросов может сильно отличаться от загруженности сервера.
Приложение:
Ответ отправил: Seprize (статус: 1-й класс)
Ответ отправлен: 24.11.2008, 13:10
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236520 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо. Но одним запросом можно выбрать случайное?
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.