powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проблема с limit n,m
4 сообщений из 4, страница 1 из 1
Проблема с limit n,m
    #32843733
Фотография GunJah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть простая таблица из 9 полей хранящая около полумиллиона записей. Есть поле время в формате datetime и flag enum (0,1).
Задача:
Вывести таблицу (cgi perl) где флаг=0 и отсортированную по времени.
Запрос:
SELECT time,blablabla,.... WHERE flag='0' ORDER BY time DESC LIMIT n,50;

Где n - подсовывается cgi-шником и принимает значения 0,50,100,.... Короче таким образом реализуется листалка, чтоб не выплевывать пользователю все полмиллиона записей.

Проблема:
С увеличением n нереально возрастает время запроса. К примеру при n=0 время выполнения запроса = 0.03 сек, а при n=150000 возрастает до 12 сек.
Понастроил индексов на все значимые поля, та же хрень. Можно это как-то побороть ?
И вообще как работает limit ? Он че все равно втягивает всю таблицу целиком ? Рабочая нагрузка таблицы планируется около 5 млн записей. При таком объеме тормоза станут просто нереальными. Короче need help :-)
...
Рейтинг: 0 / 0
Проблема с limit n,m
    #32844429
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а как ты хотел?!

Где гарантия, что ты не вствишь запись и по полю дата они окажутся не в конце, и не в начале, а где-то посередине?!

Вот и выходит, что раз ты сортируешь по полю Дата, серверу приходится посмотреть все записи, оценить какая будет по счет N и N+50...

Но странно, при вполне стандартном индекси по этим двум полям (flag и time) скорость подобного запроса должна быть вполне приемлемая!

Недавно была подобная таблица с 180 млн. из нее n=2 000 000 выдало что-то около 1.5 секунды.

Код: plaintext
mahoune
...
Рейтинг: 0 / 0
Проблема с limit n,m
    #32844554
Фотография GunJah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня key_buffer_size примерно 8 метров. Мож дело в этом и надо памяти поболее выделять ?
...
Рейтинг: 0 / 0
Проблема с limit n,m
    #32844579
Фотография Dinky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunJahУ меня key_buffer_size примерно 8 метров. Мож дело в этом и надо памяти поболее выделять ?
а чего статус говорит про Key_blocks_used ?
Индекс по (flag,datetime) /* кстати, есть такой? ;) */ для полуМ записей будет ровно 5MB, т.е. должен влезать, если больше ничего нет

--
Dmitry
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проблема с limit n,m
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]