Это зависит от используемого вами двигателя. Список тех, которые идут с MySQL, можно найти здесь .
В таблицах MyISAM есть файл для каждой таблицы. Этот файл может вырасти до предела вашей файловой системы. По мере того, как таблица становится больше, вам придется настраивать ее, так как есть оптимизация индекса и размера данных, которые ограничивают размер по умолчанию. Кроме того, на этой документации MyISAM написано:
Существует ограничение в 2 ^ 32 (~ 4.295E + 09)
строки в таблице MyISAM. Если вы строите
MySQL с --with-big-таблицами
опция, ограничение строки
увеличено до (2 ^ 32) ^ 2 (1.844E + 19) строк.
См. Раздел 2.16.2, «Типичная настройка
Опции". Двоичные распределения для
Unix и Linux построены с этим
опция.
InnoDB может работать в 3 различных режимах: используя файлы таблиц innodb, используя весь диск как файл таблицы или используя innodb_file_per_table
.
- Файлы таблиц предварительно создаются для каждого экземпляра MySQL. Обычно вы создаете много места и следите за ним. Когда он начнет заполняться, вам нужно настроить другой файл и перезагрузить сервер. Вы также можете установить его на
autoextend
, чтобы он добавлял кусок пространства к последнему файлу таблицы, когда он начнет заполняться. Я обычно не использую эту функцию, так как вы никогда не знаете, когда вы снизите производительность при расширении таблицы. На этой странице рассказывается о его настройке.
- Я никогда не использовал целый диск в качестве файла таблицы, но это можно сделать. Вместо того, чтобы указывать на файл, я полагаю, что вы указываете файлы таблицы InnoDB на неформатированное, не смонтированное устройство.
innodb_file_per_table
заставляет таблицы InnoDB действовать как таблицы MyISAM. Каждая таблица получает свой собственный файл таблицы. В прошлый раз, когда я использовал это, файлы таблиц не уменьшались, если вы удаляли из них строки. Когда таблица удаляется или изменяется, размер файла изменяется.
Механизм архивации - это сжатая таблица MyISAM.
Таблица памяти вообще не использует диск. Фактически, когда сервер перезагружается, все данные теряются.
Таблицы слияния похожи на разбиение бедняков на таблицы MyISAM. Это вызывает запрос к группе идентичных таблиц, как если бы она была. Кроме определения таблицы FRM, кроме файлов MyISAM, не существует никаких файлов.
Таблицы CSV являются оболочками вокруг файлов CSV. Обычные ограничения файловой системы применяются здесь. Они не слишком быстрые, так как не могут иметь индексы.
Я не думаю, что кто-то больше использует BDB. По крайней мере, я никогда не использовал это. Он использует базу данных Berkly в качестве серверной части. Я не знаком с его ограничениями.
Объединенные таблицы используются для подключения и запроса таблиц на других серверах баз данных. Опять же, есть только файл FRM.
Двигатель Blackhole не хранит ничего локально. Он используется главным образом для создания журналов репликации, а не для фактического хранения данных, так как нет хранения данных:)
MySQL Cluster совершенно другой: он хранит практически все в памяти (в последних выпусках допускается хранение на диске) и сильно отличается от всех других механизмов.