开发者社区> 技术小胖子> 正文

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:

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,如需转载请自行联系原作者





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL两千万数据优化&迁移
最近有一张2000W条记录的数据表需要优化和迁移。2000W数据对于MySQL来说很尴尬,因为合理的创建索引速度还是挺快的,再怎么优化速度也得不到多大提升。不过这些数据有大量的冗余字段和错误信息,极不方便做统计和分析。
5756 0
记一次Mysql大数据分页优化问题
记一次Mysql大数据分页优化问题
42 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
27723 0
优化MySQL数据库查询的三种方法简介
  在优化查询中,数据库应用(如MySQL)即意味着对工具的操作与使用。使用索引、使用EXPLAIN分析查询以及调整MySQL的内部配置可达到优化查询的目的。   任何一位数据库程序员都会有这样的体会:高通信量的数据库驱动程序中,一条糟糕的SQL查询语句可对整个应用程序的运行产生严重的影响,其不仅消耗掉更多的数据库时间,且它将对其他应用组件产生影响。
843 0
SQL Server Profiler和数据库引擎优化顾问
原文:SQL Server Profiler和数据库引擎优化顾问  简介           说到Sql的【性能工具】真是强大,SQL Server Profiler的中文意思是SQL Server事件探查,这个到底是做什么用的呢?我们都知道探查的意思大多是和监视有关,其实这个SQL Server Profiler就是一个Sql的监视工具,可以具体到每一行Sql语句,每一次操作,和每一次的连接。
1197 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
12967 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
19980 0
21115
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载