MySQL OCP888题解069-CHECK TABLE

文章目录

  • 1、原题
    • 1.1、英文原题
    • 1.2、答案
  • 2、题目解析
    • 2.1、题干解析
    • 2.2、选项解析
  • 3、知识点
    • 3.1、知识点1:CHECK TABLE语句
  • 4、总结

1、原题

1.1、英文原题

MySQL OCP888题解069-CHECK TABLE_第1张图片

1.2、答案

B、E

2、题目解析

2.1、题干解析

本题主要考察CHECK TABLE的作用和注意事项。

2.2、选项解析

  1. CHECK TABLE可以检查一个或多个表是否有错误,适用于InnoDB、MyISAM、ARCHIVE和CSV表。能够检查标的结构和索引,所以选项B、E正确。

3、知识点

3.1、知识点1:CHECK TABLE语句

  • CHECK TABLE检查一个或多个表是否有错误。对于MyISAM表,关键统计数据也会被更新。CHECK TABLE也可以检查视图是否有问题,比如在视图定义中引用的表不再存在。
  • CHECK TABLE适用于InnoDB、MyISAM、ARCHIVE和CSV表。
  • 对于分区表支持CHECK TABLE,可以使用ALTER TABLE …CHECK PARTITION来检查一个或多个分区;
  • 语法
CHECK TABLE tbl_name [, tbl_name] ... [option] ...

option: {
    FOR UPGRADE
  | QUICK
  | FAST
  | MEDIUM
  | EXTENDED
  | CHANGED
}
  • CHECK TABLE返回一个具有下表所示列的结果集。语句可能为每个被检查的表产生许多行信息。最后一行的Msg_type值为status,Msg_text通常应该是OK。
    • Table:表名
    • Op:值永远是check
    • Msg_type:status | error | info | note | warning
    • Msg_text:说明文字
  • FOR UPGRADE选项检查命名的表是否与当前版本的MySQL兼容。如果全面检查成功,服务器会用当前的MySQL版本号标记该表的.frm文件。标记.frm文件可以确保服务器对该表的同一版本的进一步检查是快速的。
  • 检查数据的一致性:
    • QUICK:不要扫描行来检查不正确的链接。适用于InnoDB和MyISAM表和视图。
    • FAST:只检查那些没有被正确关闭的表。忽略InnoDB;只适用于MyISAM表和视图。
    • CHANGED:仅检查自上次检查后被改变的表或没有被正确关闭的表。忽略了InnoDB;只适用于MyISAM表和视图。
    • MEDIUM:扫描行以验证被删除的链接是否有效。这也是为行计算一个键的校验和,并且用计算出的键的校验和来验证它。忽略InnoDB;只适用于MyISAM表和视图。
    • EXTENDED:为每一行的所有键做一个完整的键查询。这可以确保表是100%一致的,但是需要很长的时间。忽略InnoDB;只适用于MyISAM表和视图。
    • 如果没有指定QUICK、MEDIUM或EXTENDED选项,MyISAM表的默认检查类型是MEDIUM。

官方参考文档

4、总结

  1. CHECK TABLE可以检查一个或多个表的结构或索引是否有错误,适用于InnoDB、MyISAM、ARCHIVE和CSV表。

你可能感兴趣的:(MySQL,mysql,数据库,服务器,ocp,sql)