Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
db:mysql:engines:innodb [2016/10/22 15:28] – создано mirocow | db:mysql:engines:innodb [2016/10/22 15:34] (текущий) – [Восстановление таблиц] mirocow | ||
---|---|---|---|
Строка 29: | Строка 29: | ||
===== XtraDB ===== | ===== XtraDB ===== | ||
- | ===== MERGE ===== | + | ===== Восстановление таблиц |
- | * Используется для объединения одинаковых таблиц в одну | + | * ibdata1: By default all data and indexes for all tables/ |
- | * таблицы должны иметь идентичную структуру | + | * ib_logfile0 and ib_logfile1: |
- | * порядок столбцов должен совпадать | + | * tablename.frm: |
- | * DROP не удаляет исходных таблиц | + | |
- | * таблицы могут быть в другой базе данных | + | |
- | * можно использовать для алиасов (для одной таблицы) | + | |
- | * нельзя пользоваться FULLTEXT search | + | |
- | * нельзя смешивать временные и не временные таблицы | + | |
- | * медленная при чтении по ключу | + | |
- | * REPLACE не работает | + | |
- | | + | |
- | ==== Советы/ | + | ==== Этапы восстановление ==== |
- | + | ||
- | Рекомендации: | + | |
- | + | ||
- | ===== HEAP (MEMORY) ===== | + | |
- | + | ||
- | * транзакций нет | + | |
- | * блокировка таблицы | + | |
- | * репликация: | + | |
- | * макс. длина ключа: 500 байт | + | |
- | * все данные теряются при остановке сервера (сама таблица | + | |
- | * формат хранения: всегда fixed-length row | + | |
- | * память не высвобождается при удалении записи (используется для | + | |
- | + | ||
- | ==== Советы/ | + | |
- | + | ||
- | большие таблицы «свопяться» | + | |
- | + | ||
- | Рекомендации: | + | |
- | + | ||
- | ===== ARCHIVE ===== | + | |
- | + | ||
- | * макс. диск: нет ограничения | + | |
- | * блокировка записи | + | |
- | * не работает DELETE, REPLACE, UPDATE, ORDER BY, тип BLOB | + | |
- | * INSERT буферизируется и «сливается» с большой задержкой | + | |
- | * очень медленный SELECT | + | |
- | + | ||
- | ==== Советы/ | + | |
- | + | ||
- | Рекомендации: | + | |
+ | - Create empty InnoDB tablespace (remove existing ibdata1, ib_logfile* and start MySQL). | ||
+ | - Enable innodb_file_per_table | ||
+ | - Create tables you want to connect | ||
+ | - Compile ibdconnect from Percona InnoDB Recovery Tool and run ./ | ||
+ | - Then fix checksums in ibdata1 as described in the post | ||
+ | - Copy new ibdata1 and all your *.ibd files to the datadir. | ||
+ | - Start MySQL and take a dump of the tables. | ||