Spec-Zone .ru
спецификации, руководства, описания, API
|
Выделение памяти важно, когда Вы работаете, myisamchk. myisamchk не использует больше памяти, чем его связанные с памятью переменные устанавливаются в. Если Вы собираетесь использовать myisamchk на очень больших таблицах, следует сначала решить, сколько памяти Вы хотите, чтобы он использовал. Значение по умолчанию должно использовать только приблизительно 3 МБ, чтобы выполнить восстановления. При использовании больших значений можно заставить myisamchk работать быстрее. Например, если Вы имеете RAM больше чем 512 МБ в наличии, Вы могли бы использовать опции, такие как они (в дополнение к любым другим опциям, которые Вы могли бы определить):
shell>myisamchk --myisam_sort_buffer_size=256M \
--key_buffer_size=512M \
--read_buffer_size=64M \
--write_buffer_size=64M ...
Используя --myisam_sort_buffer_size=16M
достаточно вероятно, для большинства
случаев.
Знайте, что myisamchk
использует временные файлы в TMPDIR
. Если TMPDIR
точки
к файловой системе памяти, из ошибок памяти могут легко произойти. Если это происходит, выполните myisamchk с --tmpdir=
опция, чтобы
определить каталог, расположенный на файловой системе, у которой есть больше пространства. path
Когда выполнение операций восстановления, myisamchk также нуждается в большом дисковом пространстве:
Дважды размер файла данных (исходный файл и копия). Это пространство не необходимо,
если Вы делаете восстановление с --quick
; в этом случае только индексный файл воссоздается. Это пространство должно быть доступным на той же самой файловой системе как
исходный файл данных, как копия создается в том же самом каталоге как оригинал.
Пространство для нового индексного файла, который заменяет старый. Старый индексный файл является усеченным в начале работы восстановления, таким образом, Вы обычно игнорируете это пространство. Это пространство должно быть доступным на той же самой файловой системе как исходный файл данных.
При использовании --recover
или --sort-recover
(но не при использовании --safe-recover
), Вы нуждаетесь в пространстве на диске для того, чтобы
сортировать. Это место выделяется во временном каталоге (определенный TMPDIR
или --tmpdir=
). Следующая
формула приводит к количеству требуемого пространства: path
(largest_key
+row_pointer_length
) *number_of_rows
* 2
Можно проверить длину ключей и row_pointer_length
с myisamchk-dv
tbl_name
(см. Раздел
4.6.3.5, "Получая информацию о Таблице с myisamchk"). row_pointer_length
и number_of_rows
значения Datafile
pointer
и Data records
значения в табличном описании.
Определить largest_key
значение, проверьте Key
строки в табличном описании. Len
столбец указывает на число байтов для каждой ключевой роли. Поскольку многократный столбец
индексирует, размер ключа является суммой Len
значения для всех
ключевых ролей.
Если у Вас есть проблема с дисковым пространством во время восстановления, можно попробовать --safe-recover
вместо --recover
.