- 浏览: 980933 次
文章分类
- 全部博客 (428)
- Hadoop (2)
- HBase (1)
- ELK (1)
- ActiveMQ (13)
- Kafka (5)
- Redis (14)
- Dubbo (1)
- Memcached (5)
- Netty (56)
- Mina (34)
- NIO (51)
- JUC (53)
- Spring (13)
- Mybatis (17)
- MySQL (21)
- JDBC (12)
- C3P0 (5)
- Tomcat (13)
- SLF4J-log4j (9)
- P6Spy (4)
- Quartz (12)
- Zabbix (7)
- JAVA (9)
- Linux (15)
- HTML (9)
- Lucene (0)
- JS (2)
- WebService (1)
- Maven (4)
- Oracle&MSSQL (14)
- iText (11)
- Development Tools (8)
- UTILS (4)
- LIFE (8)
最新评论
-
Donald_Draper:
Donald_Draper 写道刘落落cici 写道能给我发一 ...
DatagramChannelImpl 解析三(多播) -
Donald_Draper:
刘落落cici 写道能给我发一份这个类的源码吗Datagram ...
DatagramChannelImpl 解析三(多播) -
lyfyouyun:
请问楼主,执行消息发送的时候,报错:Transport sch ...
ActiveMQ连接工厂、连接详解 -
ezlhq:
关于 PollArrayWrapper 状态含义猜测:参考 S ...
WindowsSelectorImpl解析一(FdMap,PollArrayWrapper) -
flyfeifei66:
打算使用xmemcache作为memcache的客户端,由于x ...
Memcached分布式客户端(Xmemcached)
创建表:
创建存储过程:
每次执行插入,提交一次
跟load0,没有什么区别因为mysql默认开启自动提交
所有插入一次提交:
执行存储过程:
受影响的行: 0
时间: 26.520s
受影响的行: 1
时间: 0.483s
我的计算机时间已经15:56了,事务还没有结束,前台调用存储过程虽然返回快,但后台事务还在运行
受影响的行: 0
时间: 0.462s
查看事务表为空;
从以上三个可以分析出,load0的执行时间较长,这是由于,每次提交,mysql都要写重做日志redo(ib_logfile0,1oad1虽然时间前台时间不长,但事务在后台运行,load3由于只做一次重做日志所以很快,当然我们是建议,不要在循环中事务提交,而是待所有语句执行完一起提交,最好不要在存储过程中开启事务,因为如果发生回滚,不知道出现什么错误,最好在代码中控制
如下:
CREATE TABLE `role` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=40006 DEFAULT CHARSET=utf-8;
创建存储过程:
每次执行插入,提交一次
DELIMITER $$ CREATE PROCEDURE load0(count INT UNSIGNED,iname varchar(50),iage INT) BEGIN DECLARE s INT UNSIGNED DEFAULT 1; START TRANSACTION; WHILE s<count DO INSERT INTO role(name,age)VALUES(iname,iage); SET s=s+1; COMMIT; END WHILE; END$$ DELIMITER ;
跟load0,没有什么区别因为mysql默认开启自动提交
DELIMITER $$ CREATE PROCEDURE load1(count INT UNSIGNED,iname varchar(50),iage INT) BEGIN DECLARE s INT UNSIGNED DEFAULT 1; START TRANSACTION; WHILE s<count DO INSERT INTO role(name,age)VALUES(iname,iage); SET s=s+1; END WHILE; END$$ DELIMITER ;
所有插入一次提交:
DELIMITER $$ CREATE PROCEDURE load2(count INT UNSIGNED,iname varchar(50),iage INT) BEGIN DECLARE s INT UNSIGNED DEFAULT 1; START TRANSACTION; WHILE s<count DO INSERT INTO role(name,age)VALUES(iname,iage); SET s=s+1; END WHILE; COMMIT; END$$ DELIMITER ;
执行存储过程:
call load0(10000,'jack',23); [SQL]call load0(10000,'jack',23);
受影响的行: 0
时间: 26.520s
truncate table role; [SQL]call load1(10000,'jack',23);
受影响的行: 1
时间: 0.483s
mysql> select * from information_schema.INNODB_TRX; +--------+-----------+---------------------+-----------------------+------------------+------------+---------------------+-----------+---------------------+-------------------+-------------------+------------------+-----------------------+-----------------+-------------------+-------------------------+---------------------+-------------------+------------------------+----------------------------+---------------------------+---------------------------+------------------+----------------------------+ | trx_id | trx_state | trx_started | trx_requested_lock_id | trx_wait_started | trx_weight | trx_mysql_thread_id | trx_query | trx_operation_state | trx_tables_in_use | trx_tables_locked | trx_lock_structs | trx_lock_memory_bytes | trx_rows_locked | trx_rows_modified | trx_concurrency_tickets | trx_isolation_level | trx_unique_checks | trx_foreign_key_checks | trx_last_foreign_key_error | trx_adaptive_hash_latched | trx_adaptive_hash_timeout | trx_is_read_only | trx_autocommit_non_locking | +--------+-----------+---------------------+-----------------------+------------------+------------+---------------------+-----------+---------------------+-------------------+-------------------+------------------+-----------------------+-----------------+-------------------+-------------------------+---------------------+-------------------+------------------------+----------------------------+---------------------------+---------------------------+------------------+----------------------------+ | 27177 |[color=red] RUNNING[/color] | [color=red]2016-07-29 15:53:43[/color] | NULL | NULL | 10000 | 21 | NULL | NULL | 0 | 0 | 1 | 360 | 0 | 9999 | 0 | REPEATABLE READ | 1 | 1 | NULL | 0 | 10000 | 0 | 0 | +--------+-----------+---------------------+-----------------------+------------------+------------+---------------------+-----------+---------------------+-------------------+-------------------+------------------+-----------------------+-----------------+-------------------+-------------------------+---------------------+-------------------+------------------------+----------------------------+---------------------------+---------------------------+
我的计算机时间已经15:56了,事务还没有结束,前台调用存储过程虽然返回快,但后台事务还在运行
truncate table role; call load2(10000,'jack',23); [SQL]call load2(10000,'jack',23);
受影响的行: 0
时间: 0.462s
select * from information_schema.INNODB_TRX;
查看事务表为空;
从以上三个可以分析出,load0的执行时间较长,这是由于,每次提交,mysql都要写重做日志redo(ib_logfile0,1oad1虽然时间前台时间不长,但事务在后台运行,load3由于只做一次重做日志所以很快,当然我们是建议,不要在循环中事务提交,而是待所有语句执行完一起提交,最好不要在存储过程中开启事务,因为如果发生回滚,不知道出现什么错误,最好在代码中控制
如下:
try{ con.setautocommint(false) con.commit(); } catch(SQLException e){ con.rollback(); }
发表评论
-
Deadlock found when trying to get lock; try restarting transaction解决方式
2017-07-18 23:00 2062MySQL 事务的学习整理:http://blog.csdn. ... -
MySQL慢日志
2017-05-18 16:05 1033The Slow Query Log:https://dev. ... -
The table is full问题解决过程
2017-05-06 15:29 7600The table‘xxxx’is full 设置临时表大小 ... -
百万级数据-程序迁移后续
2017-04-13 18:09 1633百万级数据-程序迁移:http://donald-draper ... -
Msyql日期字符串转换
2017-04-01 14:13 542Date和String的互相转换:http://www.tui ... -
Mysql添加约束
2017-03-31 16:28 901MySQL中对三种约束的支持:http://leekai.me ... -
Mysql FEDERATED引擎
2016-11-29 15:51 605使用mysql federated引擎构建MySQL分布式数据 ... -
MySQL触发器
2016-11-24 19:04 716CHANGE MASTER:http://dev.mysql. ... -
Mysql主从配置
2016-11-11 18:31 5281、主从服务器分别作以下操作: 1)版本一致 2)初始 ... -
百万级数据-程序迁移
2016-09-29 19:03 2631JVM学习笔记:http://blog.csdn.net/cu ... -
Mysql 备份工具XtraBackup增量备份
2016-08-05 18:11 722安装:http://donald-draper.iteye.c ... -
Mysql 备份工具XtraBackup全量备份
2016-08-05 16:41 564Percona安装:http://donald-draper. ... -
Mysql 备份工具XtraBackup 安装
2016-08-05 16:28 942开源热备工具XtraBackup下载:https://www. ... -
sysbench基准测试
2016-08-01 17:45 786下载sysbench:http://dev.mysql.com ... -
mysql 全文索引
2016-07-28 11:03 614mysql大表查询的时候,'String%'模糊查询可以使用B ... -
MySQL 物理文件的迁移
2016-07-26 15:39 2343参考资料:http://www.cnblogs.com/adv ... -
centos7 安装mysql
2016-07-26 11:36 746下载MYSQL-RPM包:http://downloads.m ... -
mysql 大表添加索引注意事项
2016-07-25 16:01 2641LINXU top命令: http://www.c ... -
mysql 大表分页查询测试分析优化
2016-07-25 11:30 1501索引概念: http://blog.csdn.net/xlur ... -
MySQL事务
2016-06-01 10:49 614事务基础知识:http://my.oschina.net/je ...
相关推荐
### MySQL事务处理用法与实例详解 #### 一、事务的概念及重要性 在数据库管理中,事务(Transaction)是指一系列作为一个整体的操作序列。这些操作要么全部成功,要么全部失败,不能只执行其中的一部分。事务处理...
nodejs + mysql 事物处理问题 呵呵 看了就知道 记得npm install啊 需要的东西啊 本想免费 苦于没积分 ,需要的的同学,给点分吧
"Java实现的mysql事务处理操作示例" 本文主要介绍了Java实现的mysql事务处理操作,结合实例形式较为详细的分析了Java基于JDBC操作mysql数据库实现事务处理的相关概念、操作技巧与注意事项。 事务处理是数据库操作...
关于mysql的事务处理 public static void StartTransaction(Connection con, String[] sqls) throws Exception { if (sqls == null) { return; } Statement sm = null; try { // 事务开始 System....
MySQL 事务处理是数据库管理系统中的关键特性,主要用于确保数据操作的安全性和一致性。在MySQL中,事务主要应用于支持事务的存储引擎,如InnoDB或BDB。这些存储引擎能够提供事务的四大特性:原子性(Atomicity)、...
根据提供的文件信息,本文将详细解释MySQL事务处理的相关知识点,并结合具体的示例代码进行说明。 ### MySQL事务处理基础 在数据库操作中,事务处理是非常重要的一个环节,它能够确保数据的一致性和完整性。MySQL...
本详细讲解将深入探讨MySQL事务处理的各个方面,并通过实例帮助你更好地理解和应用。 一、事务的基本特性 事务具有四大特性,也被称为ACID属性: 1. 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部...
MySQL事务处理详解主要涵盖事务的基本概念、特性以及事务隔离级别,这些都是数据库管理中至关重要的概念。MySQL中的事务主要用于处理大量且复杂的操作,确保数据的一致性和完整性。 首先,事务是MySQL数据库操作的...
MySQL事务处理与并发访问.pdf
本文实例讲述了php实现mysql事务处理的方法。分享给大家供大家参考。具体分析如下: 要实现本功能的条件是环境 mysql 5.2 /php 5 支持事务的table 类型,需要InnoDB,有了这些条件你就可以做上面的实现了,这个事物回滚...
MySQL中的事务处理是数据库管理的重要组成部分,主要目的是确保数据的一致性和完整性。事务是一组SQL语句,它们作为一个单元执行,要么全部成功,要么全部回滚,这确保了原子性。事务处理的引入是为了解决多用户、多...
MySQL的事务处理是数据库管理中的核心功能,尤其在软件开发中,确保数据一致性、安全性和可靠性至关重要。事务处理允许数据库操作作为一个不可分割的整体执行,确保数据的完整性和一致性。在人员管理系统等应用中,...
接下来,我们来看PHP下PDO的MySQL事务处理实例。以下是几个关键步骤: 1. **关闭自动提交**:在开始事务之前,需要关闭自动提交模式。在PDO中,可以通过设置`PDO::ATTR_AUTOCOMMIT`属性为0来实现。例如: ```php ...
MySQL事务处理是数据库管理系统中的关键特性,特别是在需要确保数据完整性和一致性的商务级应用中。事务是一组数据库操作,它们被视为单个逻辑工作单元,必须全部成功执行或全部不执行。这种机制对于防止数据错误和...
综上,MySQL事务处理是数据库系统中不可或缺的部分,它通过ACID特性、隔离级别、MVCC和锁机制确保数据的一致性,并在Java、Spring等开发环境中提供了便捷的事务管理接口。理解并合理使用这些概念和机制,对数据库...