《Java磨砺分清浊,实战定乾坤:MysqL性能优化感悟》要点:
本文介绍了Java磨砺分清浊,实战定乾坤:MysqL性能优化感悟,希望对您有用。如果有疑问,可以联系我们。
曾几何时,我工作以后很长一段时间不知道该学些什么,月薪也稳稳地定格在了那里,我明白如果不做些什么,迟早会被应届生替换下去,因为道理很简单,你除了经验没有任何地方比他强,公司不会花两倍的钱来雇一个没什么区其余人.
直到我看了xxx的《打造扛得住的MysqL数据库架构》,我好像重新找到了最初开始学习的激情和未来的发展方向.
课程一开始让我有种山重水复疑无路,柳暗花明又一村的感觉,打开了一个MysqL的新世界,我第一次知道MysqL还有存储引擎这个东西,而且它还是那么的重要,对于课程其中一部分的感悟分享给大家,篇幅有限不能倾囊道来,大家有条件的可以本身去看一下视频. MysqL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能.而MysqL是支持自定义存储引擎的,所以除了第三方存储引擎,如果实力足够甚至可以本身开发出一套存储引擎.
我们来看一下MysqL常用存储引擎的特点:
在MysqL5.58版本以前,默认是使用MyISAM存储引擎的,也便是说5.58以前的MysqL默认是不支持事务的,而5.58以后呢,默认使用的是Innodb存储引擎,是支持事务的.Innodb实现事务的方式是通过Redo Log 和 Undo Log来实现的.
Redo Log:主要用来实现事务的持久性,存储的是已提交的事务.由两部门组成,一个是内存中的重做日志缓冲区,由innodb_log_buffer_size决定其大小,我们可以在MySQL命令行下使用show variables like 命令来查看,另一个则是重做日志文件是以ID_logfile开头的文件,存储在MysqL的data目录下,它的数量是由innodb_log_files_in_group参数来决定的,同样可以使用show variables like命令来查看.
Undo Log:主要作用是实现MVCC(多版本并发控制),存储的是未提交的事务.当事务进行回滚的时候,就必要使用到Undo Log中的信息了.
Redo Log进行的是顺序写入,在数据库运行的时候,不必要对Redo Log进行读取 *** 作,而Undo Log则是必要进行随机的读写的,从MysqL5.6版本开始,Undo Log可以独立于系统表空间的存在,如果条件允许,可以把它放置在固态硬盘中,能大大增加服务器的性能.
那么如何选择一个合适的存储引擎来优化MysqL的性能呢,首先要考虑一下如果必要事务的支持则最好使用Innodb,如果不必要使用事务,并且大部分都是插入和查询的 *** 作,可以使用MyISAM,如果只是插入,很少查询的话Archive也是个不错的选择.
但是我们的数据库在生产环境中是需要进行备份的,前面所介绍的所有存储引擎中,只有Innodb有免费的在线热备份方案,要么就是收费的方案.而且瓦解后恢复数据,MyISAM损坏的几率要高于Innodb,所以即使不需要事务的支持,也要优先考虑Innodb,除非是某些比较特别的情况.
同时对于Innodb的事务有一个重要的参数Innodb_flush_log_at_trx_commit,它有三个选项:
0:每秒进行一次log写入cache,并flush log到磁盘,事务提交时不作任何 *** 作
1[默认]:在每次事务提交以后,将log写入cache,并flush log到磁盘
2[建议]:事务提交提交以后,执行log数据写入到cache,而且每秒执行一次flush log到磁盘
第一种,容易丢失数据;第二种,平安高但性能最差;第三种,性能相对较高并且相对平安.需要注意的是,第一种设置MysqL进程崩溃就会至少丢失一秒数据.第三种则是提交到内存以后,准备写入磁盘时服务器死机,才可能丢失一秒的数据.
关于MysqL的优化还有大量的 *** 作,比如我们 *** 作系统参数的配置,MysqL默认参数的修改,硬件的选择,表的结构设计,索引的设计,查询优化,主从同步等等,这些能够从根本上办理MysqL的性能问题,打造真正扛得住的MysqL数据库,也为大家突破两万月薪保驾护航.
最后我想说的是:宝剑锋从磨砺出,梅花香自苦寒来.希望大家都能赓续的学习进取,突破一个又一个的技术巅峰!
学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎参加Java学习交流,裙号码:253772578【长按复制】 我们一起学Java!
《Java磨砺分清浊,实战定乾坤:MysqL性能优化感悟》是否对您有启发,欢迎查看更多与《Java磨砺分清浊,实战定乾坤:MysqL性能优化感悟》相关教程,学精学透。内存溢出PHP学院为您提供精彩教程。
总结以上是内存溢出为你收集整理的Java磨砺分清浊,实战定乾坤:MySQL性能优化感悟全部内容,希望文章能够帮你解决Java磨砺分清浊,实战定乾坤:MySQL性能优化感悟所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)