П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 176936 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 74083 раз(а).

Учебник HTML.
Просмотров 73286 раз(а).

Руководство по PHP5.
Просмотров 44164 раз(а).

Хостинг через призму DNS.
Просмотров 50828 раз(а).

Подборка текстов стандартных документов.
Просмотров 44339 раз(а).

Учебник PHP - Самоучитель
Просмотров 50592 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 51004 раз(а).

Внешние атаки...
Просмотров 41313 раз(а).

Учебник PHP.
Просмотров 36547 раз(а).

SSI в примерах.
Просмотров 27429 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




Глава 4. Администрирование баз данных
Пред. След.

4.4. Предотвращение катастроф и восстановление
4.4.4. Синтаксис CHECK TABLE

CHECK TABLE tbl_name[,tbl_name...] [option [option...]]

option = QUICK | FAST | MEDIUM | EXTENDED | CHANGED

CHECK TABLE работает только на таблицах MyISAM и InnoDB. На таблицах типа MyISAM команда эквивалентна запуску на таблице myisamchk -m table_name.

Если опция не указана, используется MEDIUM.

Проверяет таблицу(ы) на наличие ошибок. Для таблиц MyISAM обновляется статистика ключей. Команда возвращает таблицу со следующими столбцами:

СтолбецЗначение
TableИмя таблицы.
OpВсегда "check".
Msg_typeОдно из значений status, error, info, или warning.
Msg_textСамо сообщение.

Заметим, что по каждой проверяемой таблице может быть выдано много строк информации. Последняя строка будет представлять Msg_type status и, как правило, должна содержать OK. Если выдается что-либо отличное от OK и Not checked, то обычно следует провести ремонт таблицы (see Раздел 4.4.6, «Использование myisamchk для профилактики таблиц и послеаварийного»). Table already up to date свидетельствует о том, что указанный для таблицы тип (TYPE) вернул информацию о том, что таблица не нуждается в проверке.

Различные типы проверки означают следующее:

ТипДействия
QUICKНе сканировать строки для проверки на неправильные связи.
FASTПроверять только таблицы, которые не были корректно закрыты.
CHANGEDПроверять только таблицы, которые изменились со времени последней проверки или не были закрыты корректно.
MEDIUMСканировать строки для проверки того, что уничтоженные связи в порядке. При этом также подсчитывается ключевая контрольная сумма для строки и сравнивается с подсчитанной контрольной суммой для ключей.
EXTENDEDВыполнить полный просмотр ключа для всех ключей для каждой строки. Успех такой проверки гарантирует 100%-ное отсутствие противоречий в таблице, но на проверку уйдет немало времени!

Для таблиц MyISAM с динамическими размерами при запуске проверки всегда выполняется проверка MEDIUM. Для строк со статическими размерами мы пропускаем сканирование строк для QUICK и FAST, поскольку повреждение строк происходит крайне редко.

Проверочные опции можно сочетать:

CHECK TABLE test_table FAST QUICK;

Эта команда просто вызовет быструю проверку таблицы для выявления того, была ли она закрыта корректно.

Примечание: в некоторых случаях CHECK TABLE изменяет таблицу! Это происходит, если таблица помечена как 'поврежденная/corrupted' или 'не закрытая корректно/not closed properly', а CHECK TABLE не находит никаких проблем в таблице. В этом случае CHECK TABLE отметит в таблице, что с ней все нормально.

Если таблица повреждена, то, скорее всего, проблема в индексах, а не в данных. Проверки всех типов обеспечивают всестороннюю проверку индексов и тем самым должны обнаруживать большинство ошибок.

Если проверяется таблица, с которой предположительно все нормально, то можно опустить проверочные опции или указать опцию QUICK. Последнюю возможность следует использовать в случае ограничений по времени и тогда, когда можно пойти на риск (очень незначительный), что QUICK пропустит ошибку в файле данных. (В большинстве случаев MySQL должен найти - при нормальной работе - любые ошибки в файле с данными. Если ошибки найдены, то таблица будет отмечена как 'поврежденная/corrupted', и в таком случае ее нельзя будет использовать, пока она не будет исправлена.)

FAST и CHANGED главным образом предназначены для использования в сценариях (например, для запуска из cron), если необходимо время от времени проверять таблицы. В большинстве случаев следует отдавать предпочтение FAST перед CHANGED (иначе надо поступать только в случае, когда возникает подозрение, что найдена ошибка в самом коде MyISAM).

Прибегать к EXTENDED следует только тогда, когда после выполнения нормальной проверки для таблицы по-прежнему выдаются странные ошибки при попытке MySQL обновить строку или найти строку по ключу (что очень маловероятно в случае успеха нормальной проверки!).

Некоторые проблемы, о которых сообщается при проверке таблицы, нельзя исправить автоматически:

  • Found row where the auto_increment column has the value 0.

    Это означает, что в таблице есть строка, где индексированный столбец AUTO_INCREMENT содержит значение 0 (строку, в которой столбец AUTO_INCREMENT имеет значение 0, можно создать, явно установив столбец в 0 командой UPDATE).

    Это само по себе не является ошибкой, но может вызвать неприятности, если понадобится сделать дамп таблицы или восстановить ее или выполнить над ней ALTER TABLE. В этом случае столбец с атрибутом AUTO_INCREMENT изменит значение в соответствии с правилами для столбцов AUTO_INCREMENT, что может вызвать проблемы, подобные ошибке дублирования ключа.

    Чтобы избавиться от предупреждения, просто выполните команду UPDATE для установки в столбце значения, отличного от 0.


Назад Начало Главы Начало Раздела Вперед

Пред. Глава След. Глава
Глава 3. Учебное пособие по MySQL Начало Книги Глава 5. Оптимизация в MySQL


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru