Задавайте вопросы, мы ответим
Вы не зашли.
День добрый.
Подскажите пожалуйста как включить сжатие данных в innodb.
Что б сама база (файл) хранился на диске в сжатом виде.
Понимаю что будет потеря производительности, но для мойе базы это не страшно.
Сервер Mysql 5.5.7-rc.
Спасибо.
Неактивен
ALTER TABLE tablename KEY_BLOCK_SIZE=8.
Размером странички, разумеется, можно играть. Чем меньше размер, тем больше
сжатие, и тем медленнее работает база. Стандартный размер — 16.
Ну и, разумеется, должен быть включен InnoDB plugin.
Неактивен
Ну и, разумеется, должен быть включен InnoDB plugin.
Подскажите а как проверить что плагин включен?
Файла ha_innodb.so на сервере я не нашел.
Команда install plugin innodb soname 'ha_innodb.so'; не отрабатывает.
В my.cnf все что касается innodb закоментировано, но базы в таком формате есть и работают.
Возможно что в 5.5.7 он включен по умолчанию ?
Неактивен
А что говорит SELECT @@innodb_version?
Неактивен
paulus написал:
А что говорит SELECT @@innodb_version?
@@innodb_version 1.1.3
Отредактированно kharkov_max (08.12.2010 07:21:56)
Неактивен
Как ни странно , но ALTER TABLE table KEY_BLOCK_SIZE=4; отработало.
ALTER TABLE table KEY_BLOCK_SIZE=4; Query OK, 279242 rows affected, 3 warnings (6.88 sec) Records: 279242 Duplicates: 0 Warnings: 3
Но размер базы (файла), меньше не стал.
Сделал dump/restore - результат такой же.
1. Как я понимаю при mysqldump свойство сжатия таблицы теряется....
И после восстановления нужно опять указывать сжатие ?
2. Как мне физически уменьшить файл (таблицы/базы данных) на диске
Как я понимаю сейчас у меня данные сжимаются, но т.к. innodb не может уменьшаться, а может только увеличиваться файлы базы меньше не стали ...
Неактивен
Хм...
Похоже что я ошибался что мои базы innodb лежат в разных файлах.
Похоже что все лежит в файле ibdata1.
Исходя из этого как мне правильно разделить каждую базу в оддельный файл иестесственно включить сжатие ?
Можно ли у казать для какой то одной базы отдельный файл а все остальные в один как есть сейчас ?
Неактивен
Нужно включить innodb_file_per_table и после этого пересоздать таблички
(например, ALTER TABLE tablename ENGINE=InnoDB).
Неактивен
paulus написал:
Нужно включить innodb_file_per_table и после этого пересоздать таблички
(например, ALTER TABLE tablename ENGINE=InnoDB).
На каждую таблицу будет создан отдельный файл?
Уменьшится ли после данной процедуры файл ibdata1?
Неактивен
Да, отдельный файл. Нет, не уменьшится.
Неактивен