Spec-Zone .ru
спецификации, руководства, описания, API
|
Много таблиц и задач обслуживания раздела могут быть выполнены, используя SQL-операторы, предназначенные в таких целях на разделенных таблицах в MySQL 5.7.
Табличное обслуживание разделенных таблиц может быть выполнено, используя операторы CHECK TABLE
, OPTIMIZE
TABLE
, ANALYZE TABLE
, и REPAIR TABLE
, которые поддерживаются для разделенных таблиц.
Можно использовать много расширений ALTER
TABLE
для того, чтобы выполнить операции этого типа на одном или более разделах непосредственно, как
описано в следующем списке:
Восстановление разделов. Восстанавливает раздел; это имеет тот же самый эффект как отбрасывающий все записи, сохраненные в разделе, затем повторно вставляя их. Это может быть полезно в целях дефрагментации.
Пример:
ALTER TABLE t1 REBUILD PARTITION p0, p1;
Оптимизация разделов. Если Вы удалили большое количество строк от раздела или
если Вы произвели много изменений в разделенной таблице со строками переменной длины (то есть, имея
VARCHAR
, BLOB
, или TEXT
столбцы), можно использовать ALTER TABLE ...
OPTIMIZE PARTITION
исправить любое неиспользуемое место и дефрагментировать файл данных
раздела.
Пример:
ALTER TABLE t1 OPTIMIZE PARTITION p0, p1;
Используя OPTIMIZE PARTITION
на данном разделе эквивалентно выполнению
CHECK PARTITION
, ANALYZE PARTITION
, и
REPAIR PARTITION
на том разделе.
Некоторые механизмы хранения MySQL, включая InnoDB
, не поддерживайте оптимизацию на раздел; в этих случаях, ALTER TABLE ...
OPTIMIZE PARTITION
анализирует и восстанавливает всю таблицу, и заставляет
соответствующее предупреждение быть выпущенным. (Ошибка #11751825, Ошибка #42822) Использование
ALTER TABLE ... REBUILD PARTITION
и ALTER TABLE
... ANALYZE PARTITION
вместо этого, чтобы избежать этой проблемы.
Анализ разделов. Это читает и хранит ключевые дистрибутивы для разделов.
Пример:
ALTER TABLE t1 ANALYZE PARTITION p3;
Восстановление разделов. Это восстанавливает поврежденные разделы.
Пример:
ALTER TABLE t1 REPAIR PARTITION p0,p1;
Проверка разделов. Можно проверить разделы на ошибки почти таким же способом,
которым можно использовать CHECK TABLE
с неразделенными таблицами.
Пример:
ALTER TABLE trb3 CHECK PARTITION p1;
Эта команда скажет Вам, если данные или индексируют в разделе p1
из
таблицы t1
повреждаются. Если это верно, использовать ALTER TABLE ... REPAIR PARTITION
восстановить раздел.
Каждый из операторов в списке, только показанном также, поддерживает ключевое слово ALL
вместо списка имен раздела. Используя ALL
заставляет
оператор действовать на все разделы в таблице.
Использование mysqlcheck и myisamchk не поддерживается с разделенными таблицами.
В MySQL 5.7 можно также усечь использование разделов ALTER TABLE ... TRUNCATE PARTITION
. Этот оператор может использоваться, чтобы
удалить все строки из одного или более разделов почти таким же способом который TRUNCATE TABLE
удаляет все строки из таблицы.
ALTER
TABLE ... TRUNCATE PARTITION ALL
усекает все разделы в таблице.