Как ограничить размер хранилища Индивидуальной базы данных MySQL - PullRequest
0 голосов
/ 02 июля 2018

Я хочу иметь возможность устанавливать ограничения на размер хранилища для отдельной базы данных MySQL (например, 2 ГБ на базу данных). Это было возможно сделать? Я не могу найти конкретную конфигурацию MySQL, которая позволяет это.

В частности, я хочу иметь возможность сделать это в AWS RDS Instance - поэтому любые знания, связанные с этим, также будут полезны.

Буду признателен за любую помощь или руководство, если это может быть сделано.

1 Ответ

0 голосов
/ 02 июля 2018

Этот вопрос был задан почти 10 лет назад: Размер схемы MySQL

Я не буду закрывать ваш вопрос как дубликат, потому что он был достаточно длинным, чтобы заслуживать нового ответа.

Ничего не изменилось. MySQL не может определять ограничение размера отдельной базы данных.

Вы можете установить максимальный размер для системного табличного пространства, и все ваши таблицы и схемы заполнят его, если вы установите innodb_file_per_table=0. Вы можете настроить максимальный размер в my.cnf следующим образом:

innodb_data_file_path=ibdata1:12M:autoextend:max:1G

Это всего лишь пример, это означает, что файл ibdata1 изначально создается на 12 МБ, он увеличивается по мере необходимости, но не будет больше, чем 1 ГБ. См. https://dev.mysql.com/doc/refman/8.0/en/innodb-init-startup-configuration.html для получения дополнительной информации.

Даже при потенциальном ограничении на системное табличное пространство это не дает вам контроля над тем, сколько места может использовать каждая схема. Все они используют одно и то же табличное пространство.

Если вы используете innodb_file_per_table=1, каждая таблица хранится в своем собственном файле табличного пространства. Нет опции для определения размера табличного пространства для таблицы.

Начиная с MySQL 5.7, вы также можете создать Общее табличное пространство и назначить ему несколько таблиц. Например, вы можете поместить все таблицы для определенной схемы в одно общее табличное пространство. Но это также не имеет синтаксиса для определения предельного размера общего табличного пространства.

Я видел несколько решений в сети, чтобы отменить привилегии вставки / обновления в схеме, если она превышает предельный размер. Но это не обеспечивается MySQL, это внешнее решение.

...