Мой файл ibdata очень большой, по крайней мере, он мне кажется очень большим. Это чрезмерно или не так плохо?
-rw-rw---- 1 mysql mysql 15G Apr 18 10:11 ibdata1
Мой файл ibdata очень большой, по крайней мере, он мне кажется очень большим. Это чрезмерно или не так плохо?
-rw-rw---- 1 mysql mysql 15G Apr 18 10:11 ibdata1
Ответы:
Если вы работаете show table status
за столом, и Data_free
поле занимает большую часть ibdata1
размера вашего файла, то у вас может быть много потерянного пространства. Большое количество вставки / удаления сделает это проблемой. Если дело обстоит именно так, а временные вставки и удаления составляют основную часть ваших данных, то у вас есть хороший пример для файла на таблицу.
Это не автоматическое "да", хотя. В мире много говорят о внутренней фрагментации внутри файлов InnoDB, но размещение их в файловой системе в виде файла на таблицу просто перемещает вашу фрагментацию на уровень файловой системы, а не на уровень базы данных.
Думайте о своем файле InnoDB как о файловой системе, а не как о файле. Если у вас много файлов, вам понадобится большая файловая система.
По большей части файловые системы действительно хорошо справляются с масштабированием, чтобы обрабатывать терабайты данных и неисчислимое количество файлов. Иногда они сталкиваются с проблемами плохой индексации (например, ограничения на количество файлов в каталоге до снижения производительности), но по большей части современная файловая система может выходить далеко за пределы терабайта.
InnoDB работает так же. Размер вашего файла данных может быть огромным ... и, как и большие файловые системы, может создавать проблемы с резервным копированием ваших данных. Тем не менее, так же, как разделение вашей файловой системы на несколько разделов не помогает с этой проблемой, так же как и попытки манипулировать innodb. Хотя вы можете использовать innodb_file_per_table , я редко рекомендую его.
Как и в случае с вашей файловой системой, лучшим ответом будет знать пределы внутри и работать в этом направлении. Понимать индексы и применять их соответствующим образом. Не пытайтесь разделить InnoDB, это не для этого.
Так как я изо всех сил пытаюсь конструктивно передать концепцию, вот краткий обзор того, что слова лучше, чем я могу: терабайты - это не большие данные, петабайты .
Я помню по-настоящему старый маркетинговый слайд MySQL, где клиент использовал хранилище данных с несколькими терабайтами. Много лет назад. InnoDB или MyISAM, оба будут работать. Это стандартная система MySQL.
Не переживайте, база данных 15 ГБ.
InnoDB free: 7364608 kB
Файлы ibdata не уменьшаются - если вы недавно удалили несколько таблиц или удалили много строк - innodb в вашей конфигурации не освободит свободное пространство обратно в файловую систему. я бы предложил вам:
таким образом вы сможете освободить место всякий раз, когда вы удаляете таблицу / базу данных innodb - связанные файлы idb будут немедленно удалены.