Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выполнение нескольких SQL запросов разом (batch), для MySQL 
:(
    Опции темы
Royan
Дата 22.7.2008, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 14.9.2002
Где: Лондон

Репутация: нет
Всего: 15



Пробелма: Допустим у меня несколько сотен INSERT'ов, которые мне необходимо выполнить из PHP кода. Выполнять их последовательно очень медленно потому что база находится далеко и одно соединение с ней обходится от нескольких десятых до секунды. 

Есть ли в PHP возможность посылать на MySQL сразу все команды за один раз, залпом?


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
Feldmarschall
Дата 22.7.2008, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



если есть шелл на той машине, где стоит база, то лучше дампом.
а то, что ты хочешь, не сильно тебе поможет. 
не будет большой разницы, сколько вызовов *_query - один, или сто
PM   Вверх
skyboy
Дата 22.7.2008, 12:03 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(Royan @  22.7.2008,  10:52 Найти цитируемый пост)
 Допустим у меня несколько сотен INSERT'ов

если это к одной таблице обращение, то insert в mysql допускает вставки нескольких полей за один запрос.
PM MAIL   Вверх
Royan
Дата 22.7.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 14.9.2002
Где: Лондон

Репутация: нет
Всего: 15



Цитата(skyboy @  22.7.2008,  09:03 Найти цитируемый пост)
если это к одной таблице обращение, то insert в mysql допускает вставки нескольких полей за один запрос. 

Объясню подтекст. У меня есть задача иногда через PHP код копировать полное состояние production базы в тестовую базу. Операция сводиться к полному удалению всего из таблички в тестовой базе и последовательному чтению/выполнению INSERT'ов из SQL файла. Если то о чем ты говоришь из этой оперы, то где об этом почитать?

Цитата(Feldmarschall @  22.7.2008,  08:55 Найти цитируемый пост)
не будет большой разницы, сколько вызовов *_query - один, или сто 

В Java есть встроенный мехнизм batch апдейтов как раз для таких задач и придуман (http://java.sun.com/javase/6/docs/api/java/sql/PreparedStatement.html) он не заточен под конкретную базу, поэтому я надеюсь что и для PHP есть подобная тема.



--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
Feldmarschall
Дата 22.7.2008, 13:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



механизм batch апдейтов придуман совсем не для этого.
и уж совсем не для этого придуманы PreparedStatements

а то, что ты описал, делается дампом.
уж к тестовой-то базе должен быть шелл доступ?
PM   Вверх
DioNiR
Дата 15.8.2008, 16:38 (ссылка) |  (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0667 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.