Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Разминка для мозгов. (lom) 02/06/2004 - 16:54:32
      Re: Разминка для мозгов. (lom) 02/06/2004 - 17:07:18
      Re: Разминка для мозгов. (Alec) 02/06/2004 - 17:11:11

> Original message text:
> From: lom - 02/06/2004 - 16:54:32
> Subject:Разминка для мозгов.
> -----------------
> Имеется таблица. >300000 записей.
> Нужно взять из этой таблицы 100 записей из произвольного места.
> Задача такая: имеется виртуальный список CListCtrl из MFC (для тех кто не знает пример - в эксплорере вывод файлов в режиме таблица) и нужно двигая ползунок скроллбара выводить в эту таблицу значения из базы. Т.е. по сути двигать "окно" по таблице в базе. Таблица эта может сортироваться по разным полям.
>
> Тривиальное решение LIMIT n, 100 не помогает из-за длительного времени запроса в случае больших значений n.
> Запоминание последнего значения ключа для последующего WHERE > тоже нельзя использовать из-за различных режимов сортировки.
>
> Есть мысли?
>


From: Alec - 02/06/2004 - 17:11:11
Subject:Разминка для мозгов.
-----------------
первое, что приходит в голову -
1) не выпендриваться, а выдавать данные странично
то есть n жестко кратно 100
2) запрос перекладывать во временную таблицу
2.1) при изменении условий сортировки никуда не уйти от запроса к серверу: сортировать - это прямая обязанность сервера
3) во временной таблице заведомо проще выбрать 100 записей, начиная с N
4) если совсем все плохо, перенумеровать записи во временной таблице так, чтобы быстро выбирать кадр в 100 записей нетрудно:
просто к временной таблице прибавить auto_increment поле - оно само перенумеруется,

а по первичному ключу все будет выбираться крайне быстро



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
15245



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |