十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
下文给大家带来有关MySQL的性能该如何优化内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完mysql的性能该如何优化你一定会有所收获。
创新互联公司是一家集网站建设,兴隆台企业网站建设,兴隆台品牌网站建设,网站定制,兴隆台网站建设报价,网络营销,网络优化,兴隆台网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
文件系统:
优化文件系统挂载参数:文件系统挂载参数是在/etc/fstab文件中修改,重启时候生效。noatime表示不记录访问时间,nodiratime不记录目录的访问时间。barrier=0,表示关闭barrier功能。其中nobarrier是xfs文件系统特有,ext4文件系统并无此参数。
扩大文件描述符:
1、动态修改,重启失效,只能使用root,并且当前session有效:ulimit -n 65535
2、修改配置文件,永久生效,在/etc/security/limits.conf配置文件中增加:
soft nofile 65535
soft nproc 65535
hard nofile 65535
hard nproc 65535
sync_binlog:
sync_binlog=0,当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来做同步,或者cache满了之后才同步到磁盘。
sync_binlog=n,当每进行n次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。
innodb_flush_log_at_trx_commit:
如果innodb_flush_log_at_trx_commit设置为0,log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下,在事务提交的时候,不会主动触发写入磁盘的操作。
如果innodb_flush_log_at_trx_commit设置为1,每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去.
如果innodb_flush_log_at_trx_commit设置为2,每次事务提交时MySQL都会把log
buffer的数据写入log file.但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次
flush(刷到磁盘)操作。
强烈建议关闭query cache。通过配置文件设置query_cache_size = 0、query_cache_type = 0即可。
分布式优化
分库分表:
这里也可以分为2类:
(1)通过前端应用代码逻辑实现的方式,实现表分拆的方式。这样做对应用程序的侵入性比较大,但是数据处理逻辑的过程把控在自己手上,有异常可以自主定位。
(2)通过中间件的方式实现,目前常用的mycat、cobar实现数据分片。
读写分离:
一般通过数据库中间件的方式实现,常用的中间件例如:maxscale、mycat、cobar、altas等
对于上文关于mysql的性能该如何优化,大家觉得是自己想要的吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。