Spec-Zone .ru
спецификации, руководства, описания, API
|
Эффективный максимальный табличный размер для баз данных MySQL обычно определяется ограничениями операционной системы на размеры файла, не MySQL внутренние пределы. Следующая таблица приводит некоторые примеры пределов размера файла операционной системы. Это - только грубое руководство и не предназначается, чтобы быть категоричным. Для самой актуальной информации, убедиться, что проверил документацию, определенную для Вашей операционной системы.
Операционная система | Предел размера файла |
---|---|
Win32 w/FAT/FAT32 | 2GB/4GB |
Win32 w/NTFS | 2TB (возможно больше) |
Linux, с 2.2 Intel 32-разрядный | 2 ГБАЙТ (LFS: 4 ГБАЙТ) |
Linux 2.4 + | (использующий ext3 файловая система) 4TB |
Солярис 9/10 | 16TB |
Mac OS X w/HF + | 2TB |
Пользователи Windows, пожалуйста, отметьте, что FAT и VFAT (FAT32) не считают подходящими для производственного использования с MySQL. Используйте NTFS вместо этого.
На Linux 2.2, можно добраться MyISAM
таблицы, больше чем 2 Гбайт в размере при
использовании Большой Поддержки Файла (LFS), исправляют для ext2 файловой системы. Актуальнейшие дистрибутивы
Linux основаны на ядре 2.4 или выше и включают все необходимые патчи LFS. На Linux 2.4, патчи также существуют
для ReiserFS, чтобы получить поддержку больших файлов (до 2TB). С JFS и XFS, петабайт и большие файлы возможны
на Linux.
Для подробного краткого обзора о LFS в Linux взгляните на Большую Поддержку Файла
егеровской ткани Андреаса в странице Linux в
Если Вы действительно встречаетесь с ошибкой полной таблицы, есть несколько причин, почему она, возможно, произошла:
Диск мог бы быть полным.
InnoDB
механизм хранения поддерживает InnoDB
таблицы в пределах табличной области, которая может быть создана из
нескольких файлов. Это позволяет таблице превысить максимальный отдельный размер файла. Табличная
область может включать необработанные разделы диска, который разрешает чрезвычайно большие таблицы.
Максимальный размер табличной области 64TB.
Если Вы используете InnoDB
таблицы и исчерпанный комната в InnoDB
табличная область. В этом случае решение состоит в том, чтобы
расшириться InnoDB
табличная область. См. Раздел
14.2.2.2, "Добавление, Удаление, или Изменение размеров InnoDB
Файлы данных и Файлы журнала".
Вы используете MyISAM
таблицы на операционной системе,
которая поддерживает файлы только до 2 Гбайт в размере и Вы поразили этот предел для файла данных или
индексного файла.
Вы используете a MyISAM
таблица и пространство,
требуемое для таблицы, превышают то, что разрешается внутренним размером указателя. MyISAM
файлы данных разрешений и индексные файлы, чтобы расти к 256TB по
умолчанию, но этот предел могут быть изменены до максимального допустимого размера 65,536TB
(2567 – 1 байт).
Если Вы нуждаетесь в a MyISAM
таблица, которая больше чем предел
значения по умолчанию и Ваша операционная система, поддерживает большие файлы, CREATE TABLE
оператор поддерживает AVG_ROW_LENGTH
и MAX_ROWS
опции. См. Раздел
13.1.14,"CREATE TABLE
Синтаксис". Сервер использует
эти опции, чтобы определить как большой таблица, чтобы разрешить.
Если размер указателя является слишком маленьким для существующей таблицы, можно изменить опции с ALTER TABLE
увеличить максимальный допустимый размер таблицы. См. Раздел
13.1.6,"ALTER TABLE
Синтаксис".
ALTER TABLEtbl_name
MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn
;
Необходимо определить AVG_ROW_LENGTH
только для таблиц с BLOB
или TEXT
столбцы; в этом случае MySQL не может оптимизировать
пространство, требуемое базируемый только на числе строк.
Изменить предел размера значения по умолчанию для MyISAM
таблицы, набор
myisam_data_pointer_size
, который определяет номер байтов,
используемых для внутренних указателей строки. Значение используется, чтобы установить размер
указателя для новых таблиц, если Вы не определяете MAX_ROWS
опция.
Значение myisam_data_pointer_size
может быть от 2 до 7. Значение 4 таблиц
разрешений до 4 Гбайт; значение 6 таблиц разрешений до 256TB.
Можно проверить максимальные данные и индексировать размеры при использовании этого оператора:
SHOW TABLE STATUS FROMdb_name
LIKE 'tbl_name
';
Также можно использовать myisamchk-dv/path/to/table-index-file. См. Раздел 13.7.5,"SHOW
Синтаксис", или Раздел
4.6.3, "myisamchk — Утилита Табличного
обслуживания MyISAM".
Другие способы работать вокруг размера файла ограничивают для MyISAM
таблицы следующие:
Если Ваша большая таблица только для чтения, можно использовать myisampack, чтобы сжать ее. myisampack обычно сжимает таблицу по крайней мере на 50 %, таким образом, у Вас могут быть, в действительности, намного большие таблицы. myisampack также может объединить многократные таблицы в единственную таблицу. См. Раздел 4.6.5, "myisampack — Генерируют Сжатые, Таблицы MyISAM Только для чтения".
MySQL включает a MERGE
библиотека, которая
позволяет Вам обработать набор MyISAM
таблицы, у которых есть
идентичная структура как сингл MERGE
таблица. См. Раздел 14.8," MERGE
Механизм хранения".
Вы используете MEMORY
(HEAP
) механизм хранения; в этом случае Вы должны увеличить значение max_heap_table_size
системная переменная. См. Раздел 5.1.4, "Системные
Переменные Сервера".