Forum Webscript.Ru

Общие => Базы данных => Тема начата: Stek от 07 Февраля 2003, 14:18:45

Название: MySQL - InnoDB
Отправлено: Stek от 07 Февраля 2003, 14:18:45
Суть вопроса в следующем ...
как известно все таблицы в innodb хранятся в одном файле. Реально все таблицы занимают около 100 мег, соответственно ibdata хранилище занимает столько же.
Теперь удаляем половину таблиц, файл ibdata не уменьшается. Теперь сам вопрос - какая команда уменьшит его, т.е. будет аналогичной optimize table , но только для ibdata хранилища ?
Название: MySQL - InnoDB
Отправлено: fidget от 07 Февраля 2003, 15:48:25
> Теперь сам вопрос - какая команда уменьшит его
никакая. Место резервируется заранее.
Т.е. с нуля, без таблиц, оно будет тоже занимать 100 метров.

Optimize для InnoDB нет, пока они рекомендуют время от времени конвертить таблицу в MyISAM в InnoDB, или делать дамп таблиц, прибивать их а потом восстанавливать. Но данные процедуры будут оптимизировать внетреннее хранение таблиц, на размере ibdata оно никак не отразиться по причине см. выше.
Название: MySQL - InnoDB
Отправлено: Stek от 07 Февраля 2003, 17:23:40
Цитировать
Место резервируется заранее.
Т.е. с нуля, без таблиц, оно будет тоже занимать 100 метров

Не всегда. У меня например, во избежании несчастного случая описанно как ibdata1:800M:autoextend
По ошибке была сконверченна большая база, в результате хранилище выросло до 1900Mb. Не нужное убилось, реальные таблицы занимают всего порядка 0,5Gb. В вот теперь минимум гиг занят впустую.
И нет никаких идей как его вернуть.  А тупо дампить все базы, убивать хранилище и создавать его заново - не очень красивое решение.
Название: MySQL - InnoDB
Отправлено: fidget от 07 Февраля 2003, 17:49:28
> Не всегда
всегда ;) твои 800 метров, будут забиты сразу, а потом, если место будет мало, файл будет увеличиваться по 8 метров.

> И нет никаких идей как его вернуть.
ты сам описал идею ;)
пока нет никакой утилиты или комманды, которая бы все это очищала.
Название: MySQL - InnoDB
Отправлено: Stek от 07 Февраля 2003, 22:46:18
Не, про те первые всегда - это я знаю, размер такой специально и установлен.
Ну да ладно, придется дампы делать, хотя и не очень удобно.