SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.12.2010 16:56:50

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Вопросец по INSERT INTO SELECT FROM..

Есть табличка на 33кк записей, файл данных весит 5.6Гб, индексный - 3.8Гб. При выполнении запроса перегона данных в пустую таблицу INSERT INTO SELECT FROM, временный файл уже вырас до 25Гб и не перестаёт расти при скорости 10мб в секунду...

У меня паника, место в фс скоро закончится)) До скольки он может вырасти и почему такое происходит? В новой таблице добавлено всего одно поле даты, остальная структура та же, при этом индексов меньше. Я понимаю, что пока я получу ответ здесь, мускль уже закончит задачу, но вот откуда такой размер, поясните плз smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#2 30.12.2010 17:20:08

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Вопросец по INSERT INTO SELECT FROM..

А было-то всего 46Гб места, и не хватило sad
101230 16:07:23 [ERROR] /usr/local/libexec/mysqld: Incorrect key file for table '/home/mysqltmp/#sql966f_2_0.MYI'; try to repair it

При чём в момент копирования данных во временную таблицу, временного файла индекса *.MYI даже небыло создано.
Но при попытках провернуть сей трюк при размещении временных данных в меньших по размеру ФС, данное сообщение ошибки выдавалось через несколько секунд после начала выполнения запроса. А большего размера ФС на сервере нету sad

Памажите кто чем сможет smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#3 01.01.2011 12:55:22

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Вопросец по INSERT INTO SELECT FROM..

Так не бывает smile Можете структуры таблиц показать?

И SHOW TABLE STATUS на первую — может, она у Вас ужатая, например.

Неактивен

 

#4 03.01.2011 11:53:55

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Вопросец по INSERT INTO SELECT FROM..

Структуры щас не покажу, коммерческая тайна))) В общем, задачу решил. Судя по всему, таблица с данными была не оптимизирована, все индексы были по нолям. По идее, это не должно влиять, но тем не менее, взял данные таблицы из бекапа и всё удачно слилось.

При этом хочу заметить, что в случае с проблемой в SHOW PROCESSLIST всегда показывало "Copying to tmp table", а в случае с оптимизированной таблицей всегда было "Sending data".
Могла ли быть проблема из-за того, что данные таблицы не были оптимизированы?


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#5 03.01.2011 17:22:52

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Вопросец по INSERT INTO SELECT FROM..

Битые таблички в любом случае могут приносить вред окружающей среде smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson