`
qing_gee
  • 浏览: 118229 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

mysql提升事务性能

阅读更多

      最近的项目使用了spring和mysql,但在性能上出了问题,刚开始一直不能找到瓶颈在哪里,就不断的摸索,经过一系列的测试后,确定了在使用spring的transactionnal的注解时,mysql提交事务时花费的时候几乎是用了100ms,这是让人很难接受的。

      刚开始怀疑是不是我们的在使用spring的事务管理器上有问题,后来有怀疑是不是对于@Transactional注解的使用上有问题,但是没有得到实质性的突破,终于在今天早上看到了关于mysql的事务优化方面的博客,最后经过测试发现,经过以下做法修改后,性能的提升是显而易见的。

 

使用以下命令进行修改mysql的配置

 

show variables like 'innodb_flush_log_at_trx_commit';
set global innodb_flush_log_at_trx_commit = 2;
show variables like 'innodb_flush_log_at_trx_commit';

 具体解释如下:

 

innodb_flush_log_at_trx_commit属性主要控制了innodb将log buffer中的数据写入日志文件,并且刷新磁盘的时间点,取值有0、1(mysql默认值)、2。

0:事务提交时,不做日志写入操作,而是每秒钟将log buffer中的日志写入文件并且flush磁盘一次。

1:每秒钟或者事务提交时,都会引起日志写入和flush磁盘操作,这样设计也是最安全的。

2:每次事务提交时,进行日志写入,但此时没有flush磁盘操作,而是在每秒钟时进行flush磁盘操作。

 

在设置mysql的innodb_flush_log_at_trx_commit属性为2时,每次提交事务时,就没有引起flush磁盘操作,这样的话,就会节省很多时间,我们的项目中平均40ms处理完一次操作,而该操作完了以后会释放事务,如此来说,1s钟内就省去了磁盘刷新的时间。而原来的这种情况下,事务提交一般都要花费40ms的时间,在多并发的情况下,甚至达到了200ms的时间,这是非常可怕的事情,而现在,普通情况下,一次事务提交所花费的时间就基本控制在个位毫秒级别上。

 

当然查看资料后,将innodb_flush_log_at_trx_commit设置为

0:mysql进程崩溃时,会丢失数据

1:每次事务日志缓冲都会写入磁盘

2:操作系统崩溃、断电情况下,会丢失最后一秒钟内的数据

 

以上情况需要根据所处的软件环境而定,而我们项目中目前设置为2已经足够了。

开心。。。。。。

0
0
分享到:
评论

相关推荐

    深入浅出Mysql优化性能提升.txt

    01-MySQL优化大的思路.wmv 02-Awk简洁入门.wmv 03-观察服务器周期性变化.wmv 04-观察MySQL进程状态.wmv 05-列选取原则.wmv 06-多列索引生效规则.wmv 07-多列索引实验.wmv 08-商城多列索引实验.wmv ...32-事务讲解.wmv

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    《mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、...

    MySQL优化insert性能的方法示例

    MySQL性能优化 MySQL性能优化就是通过合理安排资源,调整系统参数使MySQL运行更快、更节省资源。MySQL性能优化包括查询速度优化、更新速度优化、MySQL服务器优化等。本篇博客将从查询优化、数据库结构优化、MySQL...

    mysql 5.6 新特性

    通过改进 InnoDB 存储引擎来提升事务吞吐量 通过改进优化器来缩短查询执行时间和增强诊断 通过在线DDL/模式更改来提高应用程序可用性 支持通过 Memcached API 对 InnoDB 进行 NoSQL 访问,从而使开发人员能灵活的以...

    PHP+redis+mysql innodb事务和行锁实现秒杀系统.zip

    在性能优化方面,PHP支持 opcode 缓存(如APC、OpCache)以加速脚本执行,可通过配置调整、代码优化、使用缓存技术等手段提升应用性能。近年来,PHP持续进行性能改进与新特性的引入,如PHP 7系列版本在速度上有了...

    mysql-5.7.19源码包

    高性能:MySQL 5.7.19 通过优化查询执行计划、增强索引算法和提升存储引擎等方面,提供了更高的查询性能。 可靠性:MySQL 5.7.19 引入了更强大的事务支持和故障恢复机制,确保数据的一致性和可靠性。 安全性:MySQL ...

    黑马Mysql教程入门+进阶PDF (超详细,覆盖面全)

    MySQL 是一种开源的关系型数据库管理系统,广泛应用于各种规模的应用程序中。...除此之外,我们还将讨论 MySQL 的事务处理、备份与恢复、安全性等主题,帮助读者全面了解 MySQL 数据库管理的各个方面。

    10道精选MySQL面试题

    10道精选MySQL面试题: 请简述B树和B+树在MySQL数据库索引中的应用,并解释为什么InnoDB存储引擎选择使用B+树...在哪些场景下使用分区表能提升查询或写入性能? 如果业务需要进行水平拆分,你将如何设计分库分表策略?

    《海量数据处理与大数据技术实战》、《MySQL技术大全:开发、优化与运维实战》作者 旨在分享各种编程语言、开发技术、分布式与微服

    MySQL8索引篇:性能提升了100%!! 卧槽,安装完MySQL竟然提示数据表不存在!! 冰河视频聊架构:三分钟带你彻底掌握MySQL Undo Log和MVCC机制!! 一文搞懂select语句在MySQL中的执行流程! 小伙伴们说要看MySQL...

    Java + mysql 开发学生宿舍管理系统

    Java + mysql 学生宿舍管理系统 Java和MySQL的结合在...5. **性能优越**:Java作为一种高性能的编程语言,与MySQL搭配使用时可以快速高效地进行数据操作和处理,提升应用的性能。 6. **JDBC支持**:Java提供了......

    基于 MySQL 协议,Swoole 开发的MySQL数据库连接池.zip

    mysql 原理 将数据库连接作为对象存储在内存中,当用户需要访问数据库时,首次会建立连接,后面并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。...兼容各大框架,无缝提升性能

    Java性能调优实战——覆盖80%以上的Java应用调优场景

    模块四热点问题解答26讲单例模式:如何创建单一对象优化系统性能27讲原型模式与享元模式:提升系统性能的利器32讲MySQL调优之SQL语句:如何写出高性能SQL语句33讲MySQL调优之事务:高并发场景下的数据库事务调优34讲...

    mysql-bulk-insert:测试mysql合并插入的吞吐

    mysql合并插入性能测试测试数据Mysql合并插入可以带来*10的吞吐提升,而事务提交没有明显的收益。下面是在一台普通MYSQL机型下的TPS实测数据:[root@10-9-136-206 mysql-bulk-insert]# ...

    可以改善mysql性能的InnoDB配置参数

    而由于InnoDB是一个健壮的事务型存储引擎,已经有10多年的历史,一些重量级的互联网公司(Yahoo,Google Netease ,Taobao)也经常使用 我的日常工作也经常接触InnoDB,现在就InnoDB一部分可以改善性能的参数列举 1....

    MySQL多表查询(四).pdf

    数据库管理员:需要优化多表查询以提升数据库性能。 后端开发者:在应用开发中需要执行复杂的多表查询。 数据分析师:需要从多个数据源汇总和分析数据。 数据库开发者:正在设计复杂的数据库查询以解决业务问题。 ...

    5道mysql面试题及答案(3)

    MySQL面试题资源是一份精选的面试题目录,涵盖了MySQL的各个方面,包括查询语句、索引、事务、性能优化等。通过答题和参考详细的解析,您可以提升MySQL技能,备战面试,同时深入理解MySQL的内部工作原理。

    5道mysql面试题及答案(1)

    MySQL面试题资源是一份精选的面试题目录,涵盖了MySQL的各个方面,包括查询语句、索引、事务、性能优化等。通过答题和参考详细的解析,您可以提升MySQL技能,备战面试,同时深入理解MySQL的内部工作原理。

    5道mysql面试题及答案(2)

    MySQL面试题资源是一份精选的面试题目录,涵盖了MySQL的各个方面,包括查询语句、索引、事务、性能优化等。通过答题和参考详细的解析,您可以提升MySQL技能,备战面试,同时深入理解MySQL的内部工作原理。

    5道mysql面试题及答案(4)

    MySQL面试题资源是一份精选的面试题目录,涵盖了MySQL的各个方面,包括查询语句、索引、事务、性能优化等。通过答题和参考详细的解析,您可以提升MySQL技能,备战面试,同时深入理解MySQL的内部工作原理。

Global site tag (gtag.js) - Google Analytics