扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
MySQL 的碎片是 MySQL 运维过程中比较常见的问题,碎片的存在十分影响数据库的性能,本文将对 MySQL 碎片进行一次讲解。
公司主营业务:网站设计制作、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出通榆免费做网站回馈大家。
判断方法:
MySQL 的碎片是否产生,通过查看
show table status from table_nameG;
这个命令中 Data_free 字段,如果该字段不为 0,则产生了数据碎片。
产生的原因:
1. 经常进行 delete 操作
经常进行 delete 操作,产生空白空间,如果进行新的插入操作,MySQL将尝试利用这些留空的区域,但仍然无法将其彻底占用,久而久之就产生了碎片;
演示:
创建一张表,往里面插入数据,进行一个带有 where 条件或者 limit 的 delete 操作,删除前后对比一下 Data_free 的变化。
删除前:
删除后:
Data_free 不为 0,说明有碎片;
2. update 更新
update 更新可变长度的字段(例如 varchar 类型),将长的字符串更新成短的。之前存储的内容长,后来存储是短的,即使后来插入新数据,那么有一些空白区域还是没能有效利用的。
演示:
创建一张表,往里面插入一条数据,进行一个 update 操作,前后对比一下 Data_free 的变化。
CREATE TABLE `t1` ( `k` varchar(3000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
更新语句:update t1 set k='aaa';
更新前长度:223 Data_free:0
更新后长度:3 Data_free:204
Data_free 不为 0,说明有碎片;
产生影响:
1. 由于碎片空间是不连续的,导致这些空间不能充分被利用;
2. 由于碎片的存在,导致数据库的磁盘 I/O 操作变成离散随机读写,加重了磁盘 I/O 的负担。
清理办法:
MyISAM:optimize table 表名;(OPTIMIZE 可以整理数据文件,并重排索引)
Innodb:
1. ALTER TABLE tablename ENGINE=InnoDB;(重建表存储引擎,重新组织数据)
2. 进行一次数据的导入导出
碎片清理的性能对比:
引用我之前一个生产库的数据,对比一下清理前后的差异。
SQL执行速度:
select count(*) from test.twitter_11;
修改前:1 row in set (7.37 sec)
修改后:1 row in set (1.28 sec)
结论:
通过对比,可以看到碎片清理前后,节省了很多空间,SQL执行效率更快。所以,在日常运维工作中,应对碎片进行定期清理,保证数据库有稳定的性能。
自学:
1:b站上有很多mysql的学习视频,都是各个培训机构往期的培训视频
2、淘宝上搜mysql,有很多店主整理好的培训视频,大概三五块钱就有很多
3、51cto,慕课网,csdn之类的网站,上边也有很多培训视频,有需要会员的,也有免费的
需要注意下视频的培训日期以及数据库版本,最好是选最近两年的培训视频,51cto风哥的视频就挺详细的,就是有点贵
培训机构:
有很多线下的和线上的培训机构,例如晟数学苑,老男孩等等,培训的机构海了去了,自己了解下哪个机构比较好,报名就是了,就是需要花不少的钱
如果想以此就业的话,也可以去考虑去考下mysql的认证,mysql ocp也就一千来块钱
在用select语句查询mysql数据库的时候,你可以加上distinct修饰符,这样就可以去掉好多重复的,比如
SELECT
distinct(`lcontent`)
FROM
`caiji_ym_liuyan`
当然实际情况中的重复问题还有很多,需要自己的实际情况,构造相应的select语句。
在我们日常生活中偶尔会遇到一些自己不知道如何解决的问题,比如使用安装好的mysql。那么我们应该怎样解决这种自己不知道如何使用安装好的mysql的情况呢?那么接下来就由我来介绍一下使用安装好的mysql的步骤吧。
本次操作以Dell电脑为例,具体操作步骤如下:
第一步:
首先,打开MySQLWorkbench,双击打开即可。打开后的界面如下所示,然后选择数据库实例,双击进行登录。图中数据库的实例是LocalinstanceMYSQL57
第二步:
然后,输入用户名和密码进行登录。如下图所示:
第三步:
登录成功后,界面如下所示。其中,区域1显示的是数据库服务器中已经创建的数据库列表。区域2是关于数据库的操作列表。区域三是sql的编辑器和执行环境,区域4是执行结果的列表
第四步:
在sql的编辑器中输入测试语句,如图所示,其中world数据库是mysql自带的测试数据库,然后选择执行(或者使用快捷键ctrl+enter)。执行成功后,查询结果会显示在下面的列表中。
第五步:
使用完毕后,直接退出,并且如果无需数据库的后继操作的话,记得关掉MySQL的服务
看了我的方法,现在你学会如何使用安装好的mysql了吗?学会了的话就快快把这个方法分享出去,让更多的人知道如何使用安装好的mysql。以上就是使用安装好的mysql的步骤。
本文章基于Dell品牌、Windows10系统撰写的。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流