维护MySQL数据库表

时间:2019-11-20 08:52:35  来源:igfitidea点击:

简介:在本教程中,我们将向您介绍一些非常有用的语句,这些语句使您可以在MySQL中维护数据库表。

MySQL提供了一些有用的语句,使您可以有效地维护数据库表。
这些语句使您能够分析,优化,检查和修复数据库表。

分析表语句

MySQL查询优化器是MySQL服务器的重要组件,可为查询创建最佳查询执行计划。
对于特定查询,查询优化器使用存储的键分布和其他因素来决定执行联接时应联接表的顺序以及特定表应使用哪个索引。

但是,例如,在表中进行了许多数据更改(包括插入,删除或更新)之后,密钥分配有时可能会不准确。
如果密钥分配不正确,则查询优化器可能会选择错误的查询执行计划,从而可能导致严重的性能问题。

要解决此问题,您可以对表格运行ANALYZE TABLE语句,例如,以下语句分析示例数据库中的付款表。

ANALYZE TABLE payments;

如果自从运行ANALYZE TABLE语句以来对该表没有任何更改,则MySQL将不会再次分析该表。
如果再次运行以上语句:

ANALYZE TABLE payments;

就是说该表已经是最新的了。

优化表语句

在使用数据库时,您进行了许多更改,例如插入,更新和删除表中的数据,这可能会导致表的物理存储碎片化。
结果,数据库服务器的性能下降。

MySQL为您提供了一条语句,使您可以优化表以避免这种碎片整理问题。
下面说明了如何优化表:

OPTIMIZE TABLE table_name;

建议您对经常更新的表执行此语句。
例如,如果要优化订单表以对其进行碎片整理,则可以执行以下语句:

OPTIMIZE TABLE orders;

检查表语句

数据库服务器可能发生错误,例如,服务器意外关闭,将数据写入硬盘时出错等。
这些情况可能会使数据库无法正常运行,并且在最坏的情况下,它可能会崩溃。

MySQL允许您使用CHECK TABLE语句检查数据库表的完整性。
下面说明了CHECK TABLE语句的语法:

CHECK TABLE table_name;

CHECK TABLE语句检查表及其索引。
例如,您可以使用CHECK TABLE语句检查订单表,如下所示:

CHECK TABLE orders;

CHECK TABLE语句仅检测数据库表中的问题,但不能修复问题。
要修复该表,请使用REPAIR TABLE语句。

维修表声明

REPAIR TABLE语句使您可以修复数据库表中发生的某些错误。
MySQL不保证REPAIR TABLE语句可以修复表可能存在的所有错误。

以下是REPAIR TABLE语句的语法:

REPAIR TABLE table_name;

假设订单表中存在一些错误,您需要对其进行修复,则可以使用REPAIR TABLE语句作为以下查询:

REPAIR TABLE employees;

MySQL将已完成的操作返回给表,并向您显示该表是否已修复。

在本教程中,您学习了一些非常方便的语句来维护MySQL中的数据库表。