Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
запрос на выборку данных
|
|||
|---|---|---|---|
|
#18+
olegrolik1. Не пойму для чего нужна отдельная таблица? Можно немного поподробнее? 2. Я в программировании БД не силён, думаю надо почитать литературу. А всё же если просто делать пэйджинг без редактирования записей (для начала так - просмотр данных и всё), мой вариант годится? Т.е. на форме будет две кнопки - предыдущие 100 записей , следующие 100 записей . И при нажатии на каждую кнопку, будет вызываться select (см. выше какой) и данные будут отображаться на jsp-страничке.При каждом вызове вашего запроса будут происходить следующие вещи: 1. Сканирование миллиона записей 2. Выборка 100 записей 1-й шаг - весьма затратное действие, особенно, когда много пользователей. Ваша задача - либо уменьшить число шагов 1, либо избавиться от них вообще. Извавиться от шагов 1 можно либо введя доп. таблицу "перекодировки", либо ввести доп. поле в этой таблице. Тогда запрос для доп. таблицы hockey_ext: Код: plaintext 1. 2. 3. 4. 5. select h.* from hockey h join hockey_ext e on h.id=e.id where e.id_ordered between v1 and v1+100; Уменьшить число шагов 1 можно, открыв курсор с большим числом записей 1 раз, а потом на запросы получения след. порции просто прокручивать этот курсор, не заставляя сервер каждый раз при этом выполнять дорогостоящее сканирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2008, 16:03 |
|
||
|
запрос на выборку данных
|
|||
|---|---|---|---|
|
#18+
Т.е. говоря проще, добавить в таблицу новое поле order_id, где значения будут инкрементами (от 1 до миллиона). И делать выборку по этому полю. Верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2008, 18:10 |
|
||
|
запрос на выборку данных
|
|||
|---|---|---|---|
|
#18+
В CookBook для 9.5 есть такой пример. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. если вместо (SELECT MIN(inv#) FROM invoice) подставить нужное значение то можно будет гулять по все таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2008, 09:44 |
|
||
|
запрос на выборку данных
|
|||
|---|---|---|---|
|
#18+
так же там есть примеры использования функции Lag и Lead которые показывают значение предыдущей и следующей записи. Проверить у себя не могу но думаю что то типа Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2008, 09:55 |
|
||
|
запрос на выборку данных
|
|||
|---|---|---|---|
|
#18+
olegrolikТ.е. говоря проще, добавить в таблицу новое поле order_id, где значения будут инкрементами (от 1 до миллиона). И делать выборку по этому полю. Верно?Это будет работать только если у вас: - не будет удалений записей - операции вставки никогда не будут отваливаться по ошибке - инкрементное поле будет no cache или при рестарте базы вы будете руками рестартовать инкремент с существующего макс. значения+1 Иначе у вас будут появляться дыры в нумерации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2008, 10:07 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=35592649&tid=1603645]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 418ms |

| 0 / 0 |
