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

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

分析表语句

MySQL查询优化器是MySQL服务器的重要组成部分,为查询创建了一个最佳的查询执行计划。 对于特定查询,查询优化器使用存储的密钥分发和其他因素来决定在执行连接时应将表进行连接的顺序,以及哪个索引应用于特定表。

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

要解决此问题,您可以为该表运行ANALYZE TABLE语句,例如,以下语句分析示例数据库(yiibaidb)中的payments表。如下所示 -

mysql> ANALYZE TABLE payments;

+-------------------+---------+----------+----------+

| Table | Op | Msg_type | Msg_text |

+-------------------+---------+----------+----------+

| yiibaidb.payments | analyze | status | OK |

+-------------------+---------+----------+----------+

1 row in set

如果运行ANALYZE TABLE语句后表没有变化,MySQL将不会再次分析表。 如果再次运行上述语句:

mysql> ANALYZE TABLE payments;

+-------------------+---------+----------+----------+

| Table | Op | Msg_type | Msg_text |

+-------------------+---------+----------+----------+

| yiibaidb.payments | analyze | status | OK |

+-------------------+---------+----------+----------+

1 row in set

当前表已经是最新的状态了。

优化表语句

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

MySQL提供了一个语句,允许您优化表以避免此碎片整理问题。 以下说明如何优化表:

OPTIMIZE TABLE table_name;

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

mysql> OPTIMIZE TABLE orders;

+-----------------+----------+----------+-------------------------------------------------------------------+

| Table | Op | Msg_type | Msg_text |

+-----------------+----------+----------+-------------------------------------------------------------------+

| yiibaidb.orders | optimize | note | Table does not support optimize, doing recreate + analyze instead |

| yiibaidb.orders | optimize | status | OK |

+-----------------+----------+----------+-------------------------------------------------------------------+

2 rows in set

检查表语句

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

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

CHECK TABLE table_name;

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

CHECK TABLE orders;

执行上面语句,结果如下 -

mysql> CHECK TABLE orders;

+-----------------+-------+----------+----------+

| Table | Op | Msg_type | Msg_text |

+-----------------+-------+----------+----------+

| yiibaidb.orders | check | status | OK |

+-----------------+-------+----------+----------+

1 row in set

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

修复表语句

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

以下是EPAIR TABLE语句的语法:

REPAIR TABLE table_name;

假设orders表中有一些错误,需要修复它们,可以使用REPAIR TABLE语句,如下查询所示:

REPAIR TABLE employees;

MySQL返回表中所做的内容,并显示表是否已修复。

注: REPAIR TABLE方法仅适用于MyISAM,ARCHIVE和CSV表。

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

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

mysql数据库维护_维护MySQL数据库表相关推荐

  1. ezdml 支付mysql 吗_关于EZDML数据库表结构制作设计工具使用踩的坑

    我使用的是一款EZDML的数据库表结构制作设计工具 最开始在数据库创建数据库名为personalmall,基字符集为默认,数据库排序规则也是默认,创建完成之后 去EZDML生成SQL 点击执行sql ...

  2. mysql内核架构_热血江湖mysql内核技术之门派数据库表结构说明

    小编之前已经多次和大家说过了一个概念,不管你打算架设的是什么游戏什么版本都必须熟悉它的数据库整体结构.今天小编要说的是热血江湖私服游戏中最难的MYSQL内核技术,对于玩家来说MYSQL技术无疑是最难的 ...

  3. mysql中下列关于创建_在 MySQL 中,下列关于创建数据库表的描述正确的是( )。_学小易找答案...

    [单选题]在表中设置外键实现的是哪一类数据完整性( ) [单选题]以下为概念模型的是() [论述题]• 参照 < 中国图书馆分类法 > ,谈一下你对自己所学专业在整个科学知识领域中所在的位 ...

  4. MySQL学习笔记03【数据库表的CRUD操作、数据库表中记录的基本操作、客户端图形化界面工具SQLyog】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  5. mysql设计积分兑换表_积分系统数据库表设计.docx

    积分系统数据库表设计 文件编号:JHDZ/SJ 密 级: 云上城积分功能数据库设计文档 项目名称:<云上城>项目代号:XXX版 本:V1.0编制单位:平台运营编制日期:2014-10-08 ...

  6. mysql表空间满_怎么解决数据库表空间不足

    一.数据库表空间不足导致了,插入操作会报出conn.msg = ORA-01653: 表 *******表名字********无法通过 8192 (在表空间 USERS 中) 扩展 ORA-06512 ...

  7. 怎么删除mysql表中数据_如何删除数据库表中的数据?

    删除数据库表中数据有两种方式: 第一种:delete from tablename where 1=1; 第二种:truncate  table tablename; 区别是:第二种清空表数据比较及时 ...

  8. mysql整备_【mysql】使用xtrabackup在线增量备份及恢复数据库

    一.Percona Xtrabackup 简介 1.Xtrabackup  bin目录文件 介绍 1)innobackupex innobackupex 是xtrabackup的一个符号链接 . in ...

  9. 第二部分 Mysql数据库管理_第二篇 数据库MySql

    <1> 在数据库系统中,SQL语句不区分大小写(建议用大写) .但字符串常量区分大小写.建议命令大写,表名库名小写: <2> SQL语句可单行或多行书写,以";&qu ...

最新文章

  1. 编程高手是如何练成的?
  2. 青岛大学计算机学院生物信息研究组(苏晓泉团队)招生与招聘启事
  3. Debian和CentOS主流系统按包含文件名称搜索软件包
  4. 【机器学习算法专题(蓄力计划)】十七、机器学习中决策树算法
  5. endnote中科大版区别_研究生科研入门Endnote文献管理软件使用
  6. MySQL复习资料(六)——MySQL-多表联合查询
  7. Android高级模糊技术RenderScript和FastBlur
  8. Spring5的系统架构
  9. CodeForces - 1452E Two Editorials(二阶差分)
  10. 多长的企业视频最受欢迎?小于60秒
  11. 剑指offer之孩子们的游戏
  12. MAC OSX 正確地同時安裝 PYTHON 2.7 和 PYTHON3
  13. php采集规则编写,织梦dedecms图片采集规则的编写方法
  14. 【从零开始学架构-李运华】04|复杂度来源:高性能
  15. html div 上下显示不全,div垂直居中 css div盒子上下垂直居中显示
  16. Spark入门之七:了解SparkSQL运行计划及调优
  17. 关于oxc000007b错误的解决办法
  18. 全网最全的 Notion 类软件盘点
  19. linux文件查找操作
  20. Ceph 学习——OSD读写流程与源码分析(一)

热门文章

  1. Android Studio快捷键(MAC版)
  2. Codeforces Round #307 (Div. 2) A. GukiZ and Contest 水题
  3. 草稿--Windows消息机制
  4. SchemaSpy:数据库构架文档生产器,以及该软件的部分缺陷修改。提供工具包下载...
  5. SPS用户管理的问题
  6. 数据科学 python_为什么需要以数据科学家的身份学习Python的7大理由
  7. mysql免安装5.7.17_mysql免安装5.7.17数据库配置
  8. react 使用 mobx_如何使用React和MobX状态树构建基于状态的路由器
  9. 2019 css 框架_宣布CSS 2019调查状态
  10. graphql入门_GraphQL入门指南