За последние 24 часа нас посетили 18790 программистов и 1686 роботов. Сейчас ищут 855 программистов ...

InnoDB OPTIMIZE TABLE?

Тема в разделе "MySQL", создана пользователем Phantik, 28 дек 2009.

  1. Phantik

    Phantik Активный пользователь

    С нами с:
    2 июл 2009
    Сообщения:
    163
    Симпатии:
    0
    Столкнулся со следующей проблемой.

    При попытке оптимизировать таблицы innoDB выдается сообщение
    'wins_idb.wins', 'optimize', 'note', 'Table does not support optimize, doing recreate + analyze instead'

    Версия MySQL 5.1.41 community

    Хотя в документации написано:
    OPTIMIZE TABLE works only for MyISAM, InnoDB, and ARCHIVE tables. It does not work for tables created using any other storage engine, including NDBCLUSTER Disk Data tables.

    Вот ссылка http://dev.mysql.com/doc/refman/5.1/en/ ... table.html


    InnoDB хранит данные в файлах ib_data1, ib_logfile0, ib_logfile1,...
    которые только растут, даже когда дропаю базу и пересоздаю заного.

    Нашел в инете хитрый способ сжатия

    mysql> alter table wins engine=MyISAM;
    Query OK, 205616 rows affected (3.48 sec)
    Records: 205616 Duplicates: 0 Warnings: 0

    mysql> optimize table wins;
    +---------------+----------+----------+----------+
    | Table | Op | Msg_type | Msg_text |
    +---------------+----------+----------+----------+
    | wins_idb.wins | optimize | status | OK |
    +---------------+----------+----------+----------+
    1 row in set (0.58 sec)

    mysql> alter table wins engine=InnoDB;
    Query OK, 205616 rows affected (11.31 sec)
    Records: 205616 Duplicates: 0 Warnings: 0

    Но файлы абсолютно никак не уменьшаются. Даже когда база пустеет полностью.

    Посоветуйте пожалуйста как бороться с этим InnoDB. Может есть какие-нибудь хитрые способы дефрагментации?
    Как мне экономить физическое место жесткого диска? Может в настройках сервера есть какие-нибудь параметры на ограничения или автоматического сжатия?
    Заранее благодарен.
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    транзакции она там хранит, а не данные.
    =)

    размеры указаны в my.cnf
     
  3. Phantik

    Phantik Активный пользователь

    С нами с:
    2 июл 2009
    Сообщения:
    163
    Симпатии:
    0
    В директории указанной в настройках my.ini
    innodb_data_home_dir="C:/MySQL Datafiles/"
    Содержаться только эти файлы. Причем размер первого напрямую зависит от добавления новых записей.

    И в данном контексте волнует именно физический размер базы на диске. Т.к. что там 500000 записей что 0, размер этих файлов меняется лишь в большую сторону.
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    innodb_data_file_path = ibdata1:10M:autoextend

    посмотри этот параметр и постарайся понять что он означает
     
  5. Phantik

    Phantik Активный пользователь

    С нами с:
    2 июл 2009
    Сообщения:
    163
    Симпатии:
    0
    После добавления этой опции в my.ini
    Сервер не запускается с ошибкой 1067
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    ну а что в логе ошибок пишет?