●回收表空间mysql
当数据表大量删除数据时,用OPTIMIZE TABLE进行空间回收,原理时新建一张数据表,再将内容复制到新表:sql
OPTIMIZE TABLE "TABLENAME";ide
InnoDB要用如下命令进行重建:spa
ALTER TABLE table.name ENGINE='InnoDB';线程
不然会出现错误:blog
Table does not support optimize, doing recreate + analyze instead索引
●检查数据表状态进程
ANALYZE TABLE ,用来检查表键是否正确。 图片
ANALYZE TABLE mmb:内存
●CHECK TABLE 用来针对许多问题对表进行检查:
以下所示(下图摘自mysql必知必会), CHECKTABLE 发现和修复问题:
check table orders, orderitems;
在 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
这个command,state和info列应该是最重要的,显示语句正在处于什么状态,方便分析.command状态的数量不该该有不少,这会占用链接池,严重浪费系统资源.
●KILL 进程:
kill 33; --结束上图id为33的进程