zhouyi 发表于 2018-10-7 11:32:47

mysql 数据库的维护,优化

  ●回收表空间
  当数据表大量删除数据时,用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:

  ●CHECK TABLE 用来针对许多问题对表进行检查:
  如下所示(下图摘自mysql必知必会), CHECKTABLE 发现和修复问题:
  checktableorders, 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的进程

页: [1]
查看完整版本: mysql 数据库的维护,优化