Автор Тема: MySQL - InnoDB  (Прочитано 2933 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Stek

  • Обожатель PHP
  • Ветеран
  • *****
  • Сообщений: 532
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.phpdevs.com
MySQL - InnoDB
« : 07 Февраля 2003, 14:18:45 »
Суть вопроса в следующем ...
как известно все таблицы в innodb хранятся в одном файле. Реально все таблицы занимают около 100 мег, соответственно ibdata хранилище занимает столько же.
Теперь удаляем половину таблиц, файл ibdata не уменьшается. Теперь сам вопрос - какая команда уменьшит его, т.е. будет аналогичной optimize table , но только для ibdata хранилища ?
PHP без башни - сделай свою жизнь разнообразнее.
Разбираю скрипты, собираю заново, вытираю пыль с баз данных.

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
MySQL - InnoDB
« Ответ #1 : 07 Февраля 2003, 15:48:25 »
> Теперь сам вопрос - какая команда уменьшит его
никакая. Место резервируется заранее.
Т.е. с нуля, без таблиц, оно будет тоже занимать 100 метров.

Optimize для InnoDB нет, пока они рекомендуют время от времени конвертить таблицу в MyISAM в InnoDB, или делать дамп таблиц, прибивать их а потом восстанавливать. Но данные процедуры будут оптимизировать внетреннее хранение таблиц, на размере ibdata оно никак не отразиться по причине см. выше.
На Машине Тьюринга далеко не уедешь.

Оффлайн Stek

  • Обожатель PHP
  • Ветеран
  • *****
  • Сообщений: 532
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.phpdevs.com
MySQL - InnoDB
« Ответ #2 : 07 Февраля 2003, 17:23:40 »
Цитировать
Место резервируется заранее.
Т.е. с нуля, без таблиц, оно будет тоже занимать 100 метров

Не всегда. У меня например, во избежании несчастного случая описанно как ibdata1:800M:autoextend
По ошибке была сконверченна большая база, в результате хранилище выросло до 1900Mb. Не нужное убилось, реальные таблицы занимают всего порядка 0,5Gb. В вот теперь минимум гиг занят впустую.
И нет никаких идей как его вернуть.  А тупо дампить все базы, убивать хранилище и создавать его заново - не очень красивое решение.
PHP без башни - сделай свою жизнь разнообразнее.
Разбираю скрипты, собираю заново, вытираю пыль с баз данных.

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
MySQL - InnoDB
« Ответ #3 : 07 Февраля 2003, 17:49:28 »
> Не всегда
всегда ;) твои 800 метров, будут забиты сразу, а потом, если место будет мало, файл будет увеличиваться по 8 метров.

> И нет никаких идей как его вернуть.
ты сам описал идею ;)
пока нет никакой утилиты или комманды, которая бы все это очищала.
На Машине Тьюринга далеко не уедешь.

Оффлайн Stek

  • Обожатель PHP
  • Ветеран
  • *****
  • Сообщений: 532
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.phpdevs.com
MySQL - InnoDB
« Ответ #4 : 07 Февраля 2003, 22:46:18 »
Не, про те первые всегда - это я знаю, размер такой специально и установлен.
Ну да ладно, придется дампы делать, хотя и не очень удобно.
PHP без башни - сделай свою жизнь разнообразнее.
Разбираю скрипты, собираю заново, вытираю пыль с баз данных.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28