Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как правильно оптимизировать INSERT
 
 автор: Ильдар   (29.01.2013 в 09:55)   письмо автору
 
 

Генерирую в php SQL запрос вида:
INSERT INTO table (id, name, value) VALUES
(1, 2, 3),
(2, 2, 4),
(3, 3, 3),
(4, 4, 4)...... и так и далее
Собирается в итоге до 100 000 строк для вставки. Память естественно съедает.
Вот думаю, на какие части делить запрос, чтобы оптимизировать вставку, без нагрузки на систему ввода-вывода и экономии памяти.
Моя первая задумка сделать как в phpmyadmin по 500 строк.
Какие будут советы по оптимизации в общем?

  Ответить  
 
 автор: cheops   (29.01.2013 в 21:41)   письмо автору
 
   для: Ильдар   (29.01.2013 в 09:55)
 

У MySQL-сервера есть опция max_allowed_packet, которая задает максимальный размер SQL-запрроса - лучше запрашивайте её и ориентируйтесь на этот размер. Понятное дело, объем SQL-запроса не должен превышать объем памяти, которая выделяется скрипту (директива memory_limit конфигурационного файла php.ini)

  Ответить  
 
 автор: Ильдар   (01.02.2013 в 23:28)   письмо автору
 
   для: cheops   (29.01.2013 в 21:41)
 

В итоге я оптимизировал через bind. Как понял, оно выполняет кассетную вставку в бд

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования