Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсчёт строк с LIMIT 
:(
    Опции темы
zhazhah
Дата 30.5.2010, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



Здравствуйте. У меня таблица с большим объёмом данных поиск полнотекстовый. т.е в результате поискового запроса получаю очень много записей.
А проблема такая  если при поиске  подсчитывать общее количество найденных записей то запрос будет выполняться довольно долго что мне совсем не нужно. Тем более что поиск выполняется с limit 0,10 понятное дело что если не подсчитывать количество строк, запрос выполнится за 200-400 мс. И вот вопрос, как подсчитать количество строк только до 500 т.е  если больше 500 пользователю вывести "найдено больше 500"  что то на подобие Яндекса или Google ведь если бы Google подсчитывал точное количество записей то запросы точно не возвращались бы за 300мc.
PM MAIL   Вверх
Noviy
Дата 30.5.2010, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 29.11.2007

Репутация: нет
Всего: нет



Параметр SQL_CALC_FOUND_ROWS возвращает количество строк, которые вернул бы оператор SELECT, если бы не был указан LIMIT. Искомое количество строк можно получить при помощи SELECT FOUND_ROWS(). 
PM MAIL ICQ   Вверх
zhazhah
Дата 30.5.2010, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 21.3.2010

Репутация: нет
Всего: нет



Так я собственно про SQL_CALC_FOUND_ROWS и имел в виду. Проблема в том что если поисковый запрос должен будет вернуть 20-30 тыс. то это будет происходить не 200-300 мс. а 5-15 с. при 1 000 000 записей. Поэтому нужно вернуть не всё а лишь часть к примеру 500(имеется ввиду не записей, а количество записей) а пользователю выдать результат: больше 500 при этом главное что поиск очень быстрый.

Это сообщение отредактировал(а) zhazhah - 30.5.2010, 22:06
PM MAIL   Вверх
IgorIV
Дата 30.5.2010, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 7.9.2009

Репутация: нет
Всего: 8



Я думаю, что в этом случае запрос в базу должен быть LIMIT 0, 500. Результат кешировать и выводить результат пользователю по 10-20 позиций.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.