История изменений
Исправление sigurd, (текущая версия) :
У тебя 5 полей с индексами. Каждый раз, когда ты вставляешь запись в бд, индексы перестраиваются. И ты своими единичными инсертами 300 миллионов раз перестраиваешь индексы на 70 гигабайт.
Прочти внимательно условие задачи - из это БД только читают, в нее ничего не пишут. Никакие индексы не перестраиваются! Пишут в другую БД 20 полей. И вот там индексов быть не должно.
А вообще, как тебе уже сказали ранее - нужно использовать транзакции и записывать результаты пачками. Размер пачек нужно подобрать экспериментально, но начать хотя бы с сотни строк за раз.
START TRANSACTION
for(i=0; i<100; i++)
{
SELECT from bd1...
calculate();
INSERT into bd2...
}
COMMIT
Исправление sigurd, :
У тебя 5 полей с индексами. Каждый раз, когда ты вставляешь запись в бд, индексы перестраиваются. И ты своими единичными инсертами 300 миллионов раз перестраиваешь индексы на 70 гигабайт.
Прочти внимательно условие задачи - из это БД только читают, в нее ничего не пишут. Никакие индексы не перестраиваются! Пишут в другую БД 20 полей. И вот там индексов быть не должно.
А вообще, как тебе уже сказали ранее - нужно использовать транзакции и записывать результаты пачками. Размер пачек нужно подобрать экспериментально, но начать хотя бы с сотни строк за раз.
START TRANSACTION
for(i=0; i<100; i++)
{
SELECT from bd1...
calculate();
INSERT to bd2...
}
COMMIT
Исправление sigurd, :
У тебя 5 полей с индексами. Каждый раз, когда ты вставляешь запись в бд, индексы перестраиваются. И ты своими единичными инсертами 300 миллионов раз перестраиваешь индексы на 70 гигабайт.
Прочти внимательно условие задачи - из это БД только читают, в нее ничего не пишут. Никакие индексы не перестраиваются! Пишут в другую БД 20 полей. И вот там индексов быть не должно.
А вообще, как тебе уже сказали ранее - нужно использовать транзакции и записывать результаты пачками. Размер пачек нужно подобрать экспериментально, но начать хотя бы с сотни строк за раз.
START TRANSACTION
INSERT
...
INSERT
COMMIT
Исходная версия sigurd, :
У тебя 5 полей с индексами. Каждый раз, когда ты вставляешь запись в бд, индексы перестраиваются. И ты своими единичными инсертами 300 миллионов раз перестраиваешь индексы на 70 гигабайт.
Прочти внимательно условие задачи - из это БД только читают, в нее ничего не пишут. Никакие индексы не перестраиваются! Пишут в другую БД 20 полей. И вот там индексов быть не должно.