mysql 数据库的维护,优化

本文介绍了MySQL数据库中表的维护与优化方法,包括回收表空间、检查表状态、修改内存分配量等实用技巧,并提供了具体操作命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

●回收表空间

当数据表大量删除数据时,用OPTIMIZE TABLE进行空间回收,原理时新建一张数据表,再将内容复制到新表:

 OPTIMIZE TABLE  "TABLENAME";


InnoDB要用以下命令进行重建:

ALTER TABLE table.name ENGINE='InnoDB';

否则会出现错误:

Table does not support optimize, doing recreate + analyze instead



●检查数据表状态

ANALYZE TABLE ,用来检查表键是否正确。 

ANALYZE TABLE mmb:

wKiom1nkJTWRTeJGAAAPgOuRA3s166.png




●CHECK TABLE 用来针对许多问题对表进行检查:

如下所示(下图摘自mysql必知必会), CHECKTABLE 发现和修复问题:

check  table  orders, orderitems;

wKioL1nkJpPBtSrPAABt2uytVz8513.png

在 MyISAM 表上还对索引进行检查。CHECK TABLE 支持一系列的用于 MyISAM 表的方式。

参数:

CHANGED 检查自最后一次检查以来改动过的表;

EXTENDED 执行最彻底的检查, FAST 只检查未正常关闭的表, MEDIUM 检查所有被删除的链接并进行键检验; 

QUICK 只进行快速扫描;

如果 MyISAM 表访问产生不正确和不一致的结果,可能需要用REPAIR TABLE 来修复相应的表。这条语句不应该经常使用,如果需要经常使用,可能会有更大的问题要解决。


●修改内存分配量和缓冲区大小等:


查看MYSQL当前状态:

SHOW STATUS;


查看MYSQL当前设置:

SHOW VARIABLES;


修改MYSQL当前设置:

大部分参数可以用set 直接修改当前参数,但会在服务重启后失效,所以还是得将参数写到my.cnf文件中.


●显示MYSQL线程信息SHOW PROCESSLIST

wKioL1nkXsSgUrvbAAAb3eTreLA663.png

这个command,state和info列应该是最重要的,显示语句正在处于什么状态,方便分析.command状态的数量不应该有很多,这会占用连接池,严重浪费系统资源.


●KILL 进程:

kill 33;     --结束上图id为33的进程




      本文转自笔下生辉  51CTO博客,原文链接:http://blog.51cto.com/752030200/1972804,如需转载请自行联系原作者





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值