Назад | Перейти на главную страницу

Могу ли я записать ограничение на таблицу MyISAM?

У меня большие данные в myisam, поэтому дисковое пространство таблицы заполнено

Итак, могу ли я записать ограничение на таблицу MyISAM?

Что вы имеете в виду под «лимитом записи»?

Вы имеете в виду «ограничение записи» или «ограничение количества записей»?

Я предполагаю второе.

Я считаю, что размер таблицы MyISAM ограничен максимальный размер файла поддерживается файловой системой и операционной системой. Если ваша файловая система ограничена файлами размером 2 ГБ, вы, вероятно, можете переключиться на файловую систему, которая поддерживает файлы большего размера. Вам, вероятно, следует подумать об изменении серверной части базы данных на InnoDB, если размеры ваших таблиц приближаются к пределам.

Лучшим подходом может быть периодическая проверка вашей базы данных с помощью myisamchkи предпринять соответствующие действия. Замечу, что у него есть такая возможность

--data-file-length=len, -D len
Maximum length of the data file (when re-creating data file when it is “full”).

В Документация MySQL для полных столов говорит

Чтобы изменить ограничение размера по умолчанию для таблиц MyISAM, установите myisam_data_pointer_size, который устанавливает количество байтов, используемых для внутренних указателей строк. Значение используется для установки размера указателя для новых таблиц, если вы не укажете параметр MAX_ROWS. Значение myisam_data_pointer_size может быть от 2 до 7. Значение 4 разрешает таблицы размером до 4 ГБ; значение 6 разрешает таблицы размером до 256 ТБ.

и

MySQL включает библиотеку MERGE, которая позволяет вам обрабатывать коллекцию таблиц MyISAM, которые имеют структуру, идентичную одной таблице MERGE. См. Раздел 13.3, «Механизм хранения MERGE».