`
pouyang
  • 浏览: 321687 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql 事务机制

阅读更多

mysql事物机制

 

一、启动方式

1、使用 service 启动:service mysqld start

2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start

3、使用 safe_mysqld 启动:safe_mysqld&

二、停止

1、使用 service 启动:service mysqld stop

2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop

3、mysqladmin shutdown

三、重启

1、使用 service 启动:service mysqld restart

2、使用 mysqld  脚本启动:/etc/inint.d/mysqld restart

四、设置事务提交方式

  set autocommit=0 禁止自动提交

  set autocommit=1 开启自动提交

  show variables like 'autocommit'

 SET GLOBAL init_connect=’SET autocommit=0′;

 

五、mysql事务测试

MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关:

show create table tablename; 可以查看表的存储引擎

alter table tablename type=InnoDB; 更改表的存储引擎

 

InnoDB:不支持事务,用于只读程序提高性能

MyISAM:支持ACID事务、行级锁、并发  

当然还有其他的存储引擎类型,目前的应用中只使用了这两种类型。

 

 

-----------------------------------------------------------------------

场景1:

 

1 tx.begin();    // 启动事务

 

2 insert  table1; // 插入数据到table1,table1 的存储引擎是MyISAM

3 insert  table2; // 插入数据到table2,table2 的存储引擎是InnoDB

 

4 tx.commit(); // 提交事务

 

经测:

1、4还未执行的时候,2就已经入库了,3未入库,4执行后,3入库。

2、2执行了,3异常了,2未回滚。

-----------------------------------------------------------------------

 

-----------------------------------------------------------------------

场景2:

设置事务非自动提交。

 

代码1:

insert table1; //   table1 存储引擎 MyISAM

代码2:

tx.begin();

insert table1; //   table1 存储引擎 MyISAM

tx.commit();

代码2加事务无效果,未执行tx.commit() 就已经入库了

 

table2存储类型 InnoDB;

代码1

insert table2;// 

代码2

tx.begin();

insert table2; //  直接入库,

tx.commit();

代码1直接入库,代码2执行tx.commit()后入库

-----------------------------------------------------------------------

 

-----------------------------------------------------------------------

场景3:

设置自动提交

 

InnoDB存储类型

insert table2; // 直接提交

 

tx.begin();

insert table2; // 待到tx.commit()提交,才入库。

insert table3; // 带到tx.commit()提交,才入库。

tx.commit();

-------------------------------------------------------------------------

可以看出:

存储引擎为MyISAM,加事务不加事务无效果,MyISAM是不支持事务的。

存储引擎为InnoDB,代码没有启动事务,每一条sql语句会启动一个事务,若代码控制了事务,则由代码控制()。

 

存储引擎为InnoDB,设置是自动提交,代码中加入了事务控制,则由事务控制,没有达到自动提交的效果。

tx.begin();

insert;

insert;

insert;

tx.commit();

 

btw:感觉mysql中设置自动提交和不自动提交,没什么意义,也没什么效果。

 

 

 

 

 

分享到:
评论

相关推荐

    MySQL事务机制

    MySQL 事务机制是数据库操作的重要组成部分,特别是在处理复杂的业务逻辑和多用户并发操作时,确保数据的完整性和一致性。以下是对这些知识点的详细说明: 1. **数据库事务**: - 事务是一组操作,这些操作被视为...

    第10章 MySQL事务机制和JDBC的使用.ppt

    Java Web基础与实例教程的PPT,自己制作的PPT,将近400页,免费分享,童鞋们努力学习吧。

    MySQL8.0锁机制和事务

    MySQL 8.0 锁机制和事务 MySQL 8.0 中的锁机制和事务是数据库系统中非常重要的概念。锁机制是指数据库系统中对数据访问的控制机制,而事务是指数据库系统中的一组操作单元。了解锁机制和事务是非常关键的,因为它们...

    06-VIP-深入理解Mysql事务隔离级别与锁机制.pdf

    深入理解Mysql事务隔离级别与锁机制 Mysql事务隔离级别与锁机制是数据库系统中非常重要的概念,它们都是为了解决多事务并发问题而设计的。下面我们将深入讲解这些机制,让大家彻底理解数据库内部的执行原理。 事务...

    MySQL海量数据存储与优化(上).pdf

    Undo/Redo Log是MySQL事务机制的核心组件,用于实现事务的回滚和提交。 二、索引存储机制 索引是MySQL优化查询性能的重要手段。MySQL支持多种索引类型,包括B-Tree索引、Hash索引、Full-Text索引等。索引存储结构...

    Mysql事务以及锁原理讲解.pdf

    总结来说,MySQL事务和锁的原理是保证数据完整性的重要机制。通过合理地使用事务来确保操作的原子性和一致性,并通过锁机制来实现事务的隔离性。理解这些原理对于数据库开发和维护是非常重要的,能够帮助我们编写出...

    MySQL分库分表无限扩容后的瓶颈及解决方案.docx

    此外,文章还将讨论 MySQL 的事务机制。事务是 MySQL 中的一种机制,旨在确保数据库的数据一致性。文章将讨论事务的实现原理和应用场景。 本文将讨论 MySQL 分库分表无限扩容后的瓶颈及解决方案,旨在帮助开发者和...

    mysql-事件,触发器,事务-实验七.docx

    MySQL 事务是 MySQL 中的一种机制,可以确保多个操作作为一个单元执行。如果事务中的某个操作失败了,整个事务将回滚到初始状态。事务有两个优点:一是可以确保数据的一致性和安全性;二是可以提高数据库的可靠性和...

    mysql事务学习资料(PPT+源码)

    在这个"mysql事务学习资料(PPT+源码)"中,你将深入理解MySQL事务的概念、类型、特性和实际应用。 1. **事务概念**:在数据库中,事务是一系列操作的集合,这些操作要么全部成功,要么全部回滚,以保持数据的一致性...

    mysql事务处理用法与实例详解

    ### MySQL事务处理用法与实例详解 #### 一、事务的概念及重要性 在数据库管理中,事务(Transaction)是指一系列作为一个整体的操作序列。这些操作要么全部成功,要么全部失败,不能只执行其中的一部分。事务处理...

    Mysql事务的基本使用-基本原理及特点ACID

    ### MySQL 事务的基本...通过对MySQL事务的理解和掌握,我们可以更好地利用其强大的功能来提高应用程序的稳定性和可靠性。通过本篇文章的学习,相信读者已经对MySQL事务的基本原理、特点以及使用方法有了全面的认识。

    mysql分布式事务实现 MySQL XA pdf

    本文将深入探讨MySQL中的分布式事务处理机制,特别是MySQL如何通过XA协议来实现跨数据库的一致性。 #### 二、什么是分布式事务处理(DTP) 分布式事务处理(Distributed Transaction Processing, DTP)是一种确保在多...

    【课堂笔记】MySQL事务与锁详解.pdf

    MySQL事务与锁详解的知识点如下: 1. 事务的理解与应用场景: 事务是数据库管理系统(DBMS)执行过程中的逻辑单位,是一个不可分割的工作单元,可以包含一条或多条DML语句。在实际应用中,事务常见的使用场景包括:当...

    详解Mysql事务隔离级别与锁机制.doc

    详解Mysql事务隔离级别与锁机制 本篇文章详细介绍了Mysql事务隔离级别与锁机制的概念、原理和应用。事务隔离级别是数据库系统中的一种机制,用于解决多事务并发问题,包括脏写、不可重复读、幻读等问题。锁机制是...

    MySQL与事务

    本文将详细介绍MySQL中的事务处理机制,尤其是InnoDB存储引擎下如何确保事务的ACID特性。 #### 二、事务处理的基本概念 事务处理在数据库中是非常重要的一个概念,它确保了一系列操作要么全部成功完成,要么完全不...

    MySQL 事务预编译查询和Perl DBI简化

    预编译查询是MySQL提供的一种优化机制,通过PreparedStatement接口实现。预编译查询可以提高性能,因为它允许数据库解析SQL语句一次,然后多次执行该语句,只需改变参数即可。这减少了解析时间,并且可以防止SQL注入...

    深入理解Mysql事务隔离级别与锁机制.pdf

    "深入理解Mysql事务隔离级别与锁机制" 事务隔离级别是数据库系统中的一种机制,用于解决多事务并发问题,使得事务之间的执行不受影响。这种机制可以分为四个级别:Read Uncommitted、Read Committed、Repeatable ...

    MySQL事务表和非事务表的区别1

    MySQL 事务表与非事务表是数据库管理中的两种基本类型,它们主要的区别在于对数据一致性和安全性提供的保障程度。在MySQL中,这两种类型的表在处理数据操作时有不同的机制。 首先,事务表,如InnoDB存储引擎提供的...

Global site tag (gtag.js) - Google Analytics