mysql数据库维护_维护MySQL数据库表

在本教程中,我们将向您介绍一些非常有用的语句,使您可以在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 个群。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

node-glob 正则表达式

https://github.com/isaacs/node-glob转载于:https://www.cnblogs.com/chris-oil/p/6507368.html

机器学习笔记—再谈广义线性模型

前文从线性回归和 Logistic 回归引出广义线性回归的概念,很多人还是很困惑,不知道为什么突然来个广义线性回归,有什么用?只要知道连续值预测就用线性回归、离散值预测就用 Logistic 回归不就行了?还有一些概念之间的关…

python连接access数据库odbc_对Python通过pypyodbc访问Access数据库的方法详解

看书上通过ODBC访问数据库的案例,想实践一下在Python 3.6.1中实现access2003数据库的链接,但是在导入odbc模块的时候出现了问题,后来查了一些资料就尝试着使用pypyodbc,最后成功了。操作步骤:①安装pypyodbc目前Python…

mysql异机备份

xx.xx..4.43----xx.xx..4.51 1、配置client通过密钥来连接server 43机器上: /root/.ssh 目录下执行 ssh-keygen -t rsa ls /root/.ssh会发现在/root/.ssh下生成一对密钥id_dsa和id_dsa.pub,将生成的公钥id_dsa.pub拷贝到server的/root/.ssh目录下&#…

周末想找个地方敲代码_观看我们的代码游戏,全周末直播

周末想找个地方敲代码by freeCodeCamp通过freeCodeCamp 观看我们的代码游戏,全周末直播 (Watch us Code Games Live All Weekend) Note: this was originally published on our now-defunct blog on July 15, 2015.注意:该文章最初于2015年7月15日发布在…

5.7和5.6的mysql_mysql5.6和5.7的区别

展开全部MySQL 5.7 已经开发两年了。相比 MySQL 5.6,有特别多的改进。团队主要关注速度,性能据报告是比之前62616964757a686964616fe4b893e5b19e31333365643661版本提升了 2 至 3 倍。新特性列表,主要改进:提升 MySQL 安全性改进了…

01:数制转换

01:数制转换 查看提交统计提问总时间限制: 1000ms内存限制: 65536kB描述求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。不同进制的表示符号为(0,1,...&am…

局域网只能看到一部分电脑_win10 网上邻居看不到其它电脑、共享不了文件

最近电脑遇到了局域网文件共享的问题,Win 10 系统在网络和共享中心里无法看到其他电脑,只能看到本机。确认共享已经打开后,通过查找最终解决。下面是解决流程。1.进入:控制面板 – 网络和共享中心 – 更改高级共享设置&#xff0c…

javascript 开发_25个新JavaScript开发人员的免费资源

javascript 开发by freeCodeCamp通过freeCodeCamp 25个新JavaScript开发人员的免费资源 (25 Free Resources for New JavaScript Developers) We asked our campers to share their favorite free resources for new JavaScript developers on Camper News. The list includes…

mysql数据库语法_MySQL数据库语法(一)

MySQL数据库语法数据库管理系统(DBMS)的概述什么是DBMS:数据的仓库方便查询可存储的数据量大保证数据的完整、一致安全可靠DBMS的发展:今天主流数据库为关系型数据库管理系统(RDBMS 使用表格存储数据)常见DBMS:Orcale、MySQL、SQL Server、DB…

作业1---四则运算

一.需求分析: 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 1/8 7/24 运算符为 , −, , 并且要求能处理用户的输入,并判断对错,打分统计正确率。 要求能处理用户输入的真分…

python有序数组中删除元素_python刷LeetCode:26. 删除排序数组中的重复项

题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组…

mysql数据库修改数据库名称_MySQL数据库之MySQL 修改数据库名称的一个新奇方法...

本文主要向大家介绍了MySQL数据库之MySQL 修改数据库名称的一个新奇方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。MySQL在5.1引入了一个rename database操作,但在MySQL5.1.23后又不支持这个命令。可以说是一个实验性的…

Lesson 001 —— 数据

Lesson 001 —— 数据 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。数据是信息的表现形式和载体,可以使符号、文字、数字、语音、图像、视频等。 进制 进制也就是进…

工作记录四-etcd与flanneld

######################### etcd用来做flannld的数据中心,记录flannld各主机子网的配置## flannld使各容器实例处于同一子网内,可以相互访问####################### ### 一、etcd安装及使用## 1. 下载编译二进制包git clone https://github.com/coreos…

C#获取刚插入的数据的id

在开发程序中我们经常会遇到两个表或多个表关联同时插入数据的需求。 那么我们刚给主表插入一条数据,接着给副表插入数据时其中一个字段要存储与主表关联的id,那么我们该怎么获取刚插入的那条数据的id呢? insert infor values(,) ;SELECT Ide…

感谢您的提问_感谢您的反馈,我们正在改进的5种方法

感谢您的提问by freeCodeCamp通过freeCodeCamp 感谢您的反馈,我们正在改进的5种方法 (5 Ways We’re Improving Thanks to Your Feedback) This was originally published on our now-defunct blog on September 17, 2015.该文章最初于2015年9月17日发布在我们现已…

sql三个表join_「数据蒋堂」第 31 期:JOIN 简化 – 维度对齐

【数据蒋堂】第 31 期:JOIN 简化 – 维度对齐我们先把上一期中双子表对齐例子的 SQL 写出来:SELECT Orders.id, Orders.customer, A.x, B.y FROM Orders LEFT JOIN (SELECT id,SUM(price) x FROM OrderDetail GROUP BY id ) A ON Orders.idA.id LEFT J…

radius

radius协议使用的是UDP传输协议,UDP协议相对于TCP更快速,无连接的不可靠。radius协议的包格式:0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1-----------…

apt-get常用命令及工作原理

https://blog.csdn.net/mosquito_zm/article/details/63684608转载于:https://www.cnblogs.com/diyunpeng/p/9772866.html