всі індекси можуть бути відновлені. Властивості статичних таблиць наступні:
Всі стовпчики CHAR, NUMERIC і DECIMAL розширені пробілами до ширини шпальти;
Дуже швидкі;
Легко кешируются;
Легко відновлюються після збою, так як записи розташовані у фіксованих позиціях;
Не мають потреби в реорганізації (за допомогою myisamchk), крім випадків, коли видаляється велика кількість записів і необхідно повернути дисковий простір операційній системі.
Для них звичайно використовується більше дискового простору, ніж для динамічних таблиць.
Характеристика для динамічних типів таблиць.
Даний формат використовується для таблиць, які містять стовпці VARCHAR, BLOB або TEXT, а також якщо таблиця була створена з параметром ROW_FORMAT=dynamic.
Це дещо складніший формат, оскільки біля кожного рядка є заголовок, в якому вказана її довжина. Один запис може закінчуватися більш ніж в одному місці, якщо вона була збільшена під час оновлення.
Щоб справити дефрагментацію таблиці, можна скористатися командами OPTIMIZE table або myisamchk. Якщо у вас є статичні дані, які часто зчитуються/змінюються в деяких стовпцях VARCHAR або BLOB однієї і тієї ж таблиці, щоб уникнути фрагментації ці динамічні стовпці краще перемістити в інші таблиці. Властивості динамічних таблиць наступні:
Всі стовпчики з рядками є динамічними (крім тих, у яких довжина менше 4).
Перед кожним записом поміщається бітовий масив, який показує, які стовпці порожні ( ) для строкових стовпців, або нуль для числових стовпців (це не те ж саме, що стовпці, що містять значення NULL). Якщо довжина строкового стовпця дорівнює нулю після видалення пробілів в кінці рядка, або у числового стовпця значення нуль, він відзначається в бітовому масиві і не зберігається на диск. Рядки, що містять значення, зберігаються у вигляді байта довжини і рядки вмісту.
Зазвичай такі таблиці займають набагато менше дискового простору, ніж таблиці з фіксованою довжиною.
Для всіх записів використовується рівно стільки місця, скільки необхідно. Якщо розмір запису збільшується, вона розділяється на кілька частин - в міру необхідності. Це призводить до фрагментації записів.
Якщо в рядок додається інформація, що перевищує довжину рядка, рядок буде фрагментована. У цьому випадку для збільшення продуктивності можна час від часу запускати команду myisamchk -r. Щоб отримати статистичні дані, скористайтеся командою myisamchk -ei tbl_name.
Відновлення після збою для таких таблиць є більш складним процесом, так як запис може бути фрагментованою і складатися з декількох частин, а посилання (або фрагмент) можуть бути відсутні.
Передбачувана довжина рядка для динамічних записів обчислюється таким чином:
+ (число стовпців + 7)/8
+ (число стовпців char)
+ розмір числових стовпців в упакованому вигляді
+ довжина рядків
+ (число стовпців NULL + 7)/8
На кожну посилання додається по 6 байтів. Динамічні записи зв'язуються при кожному збільшенні записи під час оновлення. Кожна нова посилання займає принаймні 20 байтів, тому наступне збільшення може відбутися або за цією ж засланні; або з іншої, якщо не вистачить місця. Кількість посилань можна перевірити за допомогою команди myisamchk -ed. Всі номери можна видалити за допомогою команди myisamchk -r.
Характеристика для стислих типів таблиць.
Таблиці цього тип призначені тільки для читання. Вони генеруються за допомогою додаткового інструменту myisampack (pack_isam для таблиць ISAM):
Всі дистрибутиви MySQL, навіть випущені до надання загальнодоступної ліцензії MySQL, можуть читати таблиці, які були стиснуті за допомогою myisampack.
Стислі таблиці займають дуже мало дискового простору; таким чином при застосуванні даного типу значно знижується використання дискового простору. Це корисно при роботі з повільними дисками (такими як компакт-диски).
Кожен запис стискається окремо (незначні витрати при доступі). Заголовки у записів фіксовані (1-3 байта), залежно від найбільшої запису в таблиці. Всі стовпчики стискуються по-різному. Нижче наведено опис деяких типів стиснення:
Зазвичай для кожного стовпця використовуються різні таблиці Хаффмана.
Стискаються прогалини суфікса.
Стискаються прогалини префікса.
Для зберігання чисел зі ...