![]() |
|
Модераторы: skyboy |
![]()
|
|
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Давно и прочно сижу на PHP и всегда полагал, что в работе с MySQL, если я хочу обработать массив данных, полученных из базы, то я должен дождаться завершения полной загрузки и мэппинга этих данных в PHP процесс. Другими словами, я не могу работать с первой записью, пока не получу подледную. А если я хочу работать с огромными таблицами частями, то я должен юзать лимиты и оффсеты.
Недавно одно приложение полностью опровергло мое видение. Суть этого приложения была в том, что оно извлекало из MySQL данные и через HTTP протокол скармливало их third party сервису небольшими партиями. Меня сразу удивило то, как шустро работало это приложение и я полез изучать. К сожалению доступа к исходному коду я не имеют, да и Java не знаю, поэтому я пошел обходым путем. А именно глянул mysql show processlist, который продемонстрировал мне, что приложение открывает одно соединение на получение всех данных разом и держит его на протяжение всей работы. При этом само приложение формирует первую пачку документов почти со старта и это при том, что наша таблица весит порядка 300 гигабайт т.е. мы точно уверены, что приложение не дожидается полной подгрузки таблицы. Выходит, что Java умеет работать с данным из MySQL не дожидаясь их полной загрузки. Вопросы Это особенность компилируемых языков программирования или такое можно сделать и на PHP? Должны ли мы как-то изменить сам запрос к MySQL? Если да, то как? |
|||
|
||||
| tzirechnoy |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
Компилируемость тут вообще ни при чём: http://www.php.net/manual/en/mysqlinfo.con...s.buffering.php. Там насчёт "почему так по умолчанию" немного не исторично, да и вообще коряво написано -- однако для практических цэлей это описание вполне подойдёт. |
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: нет Всего: 6 |
Вроде бы - то, что нужно. Большое спасибо!
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |