| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Выборка и работа с 70.000 записями |
| Автор: DimaSiK 2.10.2008, 11:11 |
| Работаю с Firebird. Как лучше работать с таким огромным количеством данных. Как организовывать выборку и навигацию по всем записям. ВЫбирать ли данные как-то странично? |
| Автор: MoLeX 2.10.2008, 11:15 |
а нам откуда знать выбирать тебе постранично или нет! ты уж сам определись пожалуйста |
| Автор: DimaSiK 2.10.2008, 11:19 |
| Если мне допустим нужно распечатать все 70.000 записей, то как быт ьв этом случае? |
| Автор: MoLeX 2.10.2008, 11:22 |
| вижу два пути 1. берем все данные и выводим 2. берем определенное кол-во данных, печатаем и т.д. пока не закончатся |
| Автор: Kesh 2.10.2008, 11:53 |
| При работе с больщим количеством данных обращайте внимание на оптимальность выборки и количестве данных передаваемых по сети... Приемы оптимизации стандартные - выбирать и передавать только то, что нужно... Вопрос в том, как вы собираетесь печатать... |
| Автор: DimaSiK 2.10.2008, 20:05 |
| Мне иногда нужно выбрать 20.000, иногда все записи. Послеа этого как-то с ними работать, возможно запихнуть в сессию, а потом обратно их закинуть в БД. Все это нагружает приложения до безобразия и оно очень медлено работаетю Иногда вылетает ексепшин по переполнению памяти. |
| Автор: bars80080 2.10.2008, 20:12 |
| вот хоть убей, не вижу в этом смысла. неужели во всех 20000 записях вносятся уникальные изменения, которые нельзя систематизировать и изменить с помощью нескольких управляющих значений? |
| Автор: Kesh 2.10.2008, 20:12 |
| DimaSiK, Делайте постраничный вывод... Скажем по 50 записей... |
| Автор: Nigel 2.10.2008, 21:40 |
| А можно узнать задачу, где необходим вывод 20.000 записей сразу? |
| Автор: krundetz 2.10.2008, 22:00 |
| DimaSiK, упомянутая тобой СУБД может держать и несколько миллионов записей в базе данных и спокойно с ними работать. Вопрос в ограничениях PHP. Он просто не предназначен для работы с таким обемом данных. Собственно для хранения данных и нужна СУБД, а скрипты нужны для управления работой СУБД, они должны сказать какие данные и как изменить, а уже изменять их можно при помощи СУБД. В общем думаю у тебя ошибка в области реализации задачи. Прежде всего определись а зачем извлекать сразу столько данных? |
| Автор: DimaSiK 3.10.2008, 16:58 |
| Допустим мне нужно вывести все данные из БД в файлик csv или xml формата для дальнейшего экспорта. |
| Автор: Nigel 3.10.2008, 21:08 | ||
Экспорт в файл для дальнейшего экспорта? По-моему, бредово звучит.. Для записи данных из бд в файл используется SELECT ... INTO OUTFILE |
| Автор: krundetz 3.10.2008, 23:11 | ||
А в чем сдесь сложность? Берешь получаешь все данные и записываешь их все в файл в нужном тебе виде. Если боишся что возможна нехватка памяти возми и запиши данные в несколько приемов. Тоесть сначала записываешь допустим 5000 данных в файл потом еще 5000 и т.д. пока все данные не будут записаны в файл. Сложность возможна только в том случае если у тебя все операции не будут укладываться во время отведенное для работы скрипта по умолчанию(30 секунд) и не будет возможности это время увеличить. |
| Автор: DimaSiK 4.10.2008, 08:03 | ||
[QUOTE=krundetz,3.10.2008, 23:11]
Да именно в этом и есть сложность. Вермя увы увеличить нельзя. |
| Автор: krundetz 5.10.2008, 10:00 |
| DimaSiK, виртуальный хостинг не самая удобная вешь для столь маштабных проектов, может следует подумать о виртальном выделеном сервере или попытатся найти виртуальный хостинг с возможностью изменения времени работы скрипта. |
| Автор: DimaSiK 5.10.2008, 19:07 |
| Как вариант - да. Но разве по-другому нельзя реализовать? |
| Автор: krundetz 6.10.2008, 11:00 |
| Нужно более конкретно смотреть что требуется какие данные в каком виде и куда ты хочешь их поместить, может можно что то еще сдеалть, но в современном мире дешевле проопгрейдить железную часть чем оптимизировать код. |