MySQL вставляет превышение памяти. Использую ли я скрипт php для отправки данных кусками? - PullRequest
0 голосов
/ 02 января 2012
INSERT INTO events (venue_id, artist_id, name, description)
SELECT e.id, e.artist_id, d.a_song, d.a_lyrics
FROM dump_sql AS d
    INNER JOIN events AS e
    ON d.a_album = e.name

Выше приведенный мной запрос mysql ... работает нормально. Проблема в том, что у меня слишком много данных (150 тыс. Записей), которые слишком велики для объема памяти, который сервер или mysql разрешат.

Я думаю как минимум мне нужен скрипт php для вставки данных в чанки и, возможно, увеличения объема памяти в php, mysql и ???

Любая и всякая помощь здесь была бы очень признательна ... Я новичок в области php и могу использовать некоторую помощь при разработке скрипта или любых других указателей.

Спасибо!

Ошибка:

Узел 0 Свободный DMA32: 2776 КБ, минимум: 2788 КБ, низкий: 3484 КБ, высокий: 4180 КБ active_anon: 211288 КБ inactive_anon: 211276 КБ active_file: 16 КБ 0 КБ грязной: 0 КБ обратной записи: 0 КБ сопоставлено: 116 КБ shmem: 12 КБ slab_relaimable: 11372 КБ slab_unreclaimable: 32752 КБ kernel_stack: 904 КБ страницы: 10656 КБ неустойчиво: 0 КБ да lowmem_reserve []: 0 0 0 0 Узел 0 DMA: 12 * 4 КБ 22 * ​​8 КБ 0 * 16 КБ 0 * 32 КБ 0 * 64 КБ 0 * 128 КБ 1 * 256 КБ 1 * 512 КБ 1 * 1024 КБ 0 * 2048 КБ 0 * 4096 КБ = 2016 КБ Узел 0 DMA32: 676 * 4 КБ 12 * 8 КБ 4 * 16 КБ 0 * 32 КБ 0 * 64 КБ 0 * 128 КБ 0 * 256 КБ 0 * 512 КБ 0 * 1024 КБ 0 * 2048 КБ 0 * 4096 КБ = 2864 КБ Всего 5001 страниц кэша страниц 4940 страниц в кеш подкачки Обмен статистики кеша: добавить 1565880, удалить 1560940, найти 743932/825587 Свободный обмен = 0 КБ Общий обмен = 1044216 КБ 131071 страниц ОЗУ 5577 страниц зарезервировано 2405 страниц поделились 118768 страниц без общего доступа Недостаточно памяти: процесс уничтожения 24373 (httpd), оценка 410236 или ребенок Убитый процесс 24373 (httpd) vsz: 1640944 КБ, anon-rss: 345220 КБ, файл-rss: 28 КБ

1 Ответ

1 голос
/ 02 января 2012

Попробуйте изменить значение по умолчанию

max_allowed_packet

в my.ini.

Измените его на что-то вроде:

max_allowed_packet = 100M

и посмотрите, поможет ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...