• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL数据库优化(二)—MySQL事务

MySQL数据库优化(二)—MySQL事务

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了MySQL,数据库优化,事务 等相关知识,希望本文的分享对您有所帮助
一、ACID
Atomicity
原子性 :一个事务被视为一个不可分割的最小工作单元,整个事务要么全执行,要么全部失败回滚。
Consistency
一致性:数据库总是从一个一致性的状态转换到另一个一致性的状态。例如,即使取钱操作失败,因为事务没有提交,所以事务所做的修改也不会保存到数据库中,数据还是事务执行前的状态。如果事务执行成功,那数据就是执行后的状态,保持不变。
Isolation
隔离性:一个事务所做的修改在提交之前,对其他事务是不可见的。
Durability
持久性:一旦事务提交,则其所做的修改会永久的保存到数据库中。

注意

正如锁的粒度升级会增加系统开销一样,事务处理过程也需要数据库系统做更多额外的工作。一个支持ACID的db通常比不需要支持ACID的数据库对CPU的处理能力要求更高、需要更多的内存和磁盘空间。所以用户可以通过不同的应用场景,选择mysql多样的数据库引擎,灵活应变。

二、隔离级别
在SQL标准中定义了4中隔离级别。每一种级别的事务隔离性对应着,该事务所做的修改在事务内部、事务之间的可见性。隔离级别越低,并发性越强,系统开销越低。
Read Uncommitted
未提交读:该隔离级别的事务,在数据修改过程中,即使没有提交,其他事务对于这些数据也是可读的。事务可读到未提交的数据也叫脏读(Dirty Read),由于脏读在实际应用中会导致很多问题,一般这类隔离级别应用很少。
Read Committed
提交读:(一般数据库默认事务级别)只有当前事务执行完,把数据提交之后,其他事务才可对这些数据进行读取。也叫不可重复读,因为其他事务执行2次查询可能前后会得到2个不同结果(事务执行前读一次,执行后读一次)。
Repeatable Read
可重复读:(Mysql的默认隔离级别)解决了脏读的问题,该级别保证了在同一事务中,多次读取的结果是一致的。但仍旧无法解决幻读问题。幻读:事务A在读取一定范围内数据时,事务B有对该范围数据进行插入等更新操作,事务A再次读取该范围记录时,会产生幻读(Phantom Read)。
Serializable

可串行化:在读取每一行数据时,都加上锁,强制事务串行执行,避免幻读问题。但容易产生超时和锁竞争问题。应用也相对较少,只有在特别需要保证数据一致性且无并发的情况下才使用该级别。

三、Mysql设置事务隔离级别

set transaction isolation level read committed;
新的隔离级别会在下一个事务开始执行时生效。如果需要修改当前事务的隔离级别,可对配置文件进行修改。另外, 在上篇博客中对mysql提供的两种支持事务的存储引擎:InnoDB和NDB Cluster有所介绍。

以上就是MySQL数据库优化(二)—MySQL事务 的内容,更多相关内容请关注微课江湖()!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2018-12-05Oracle数据表分区的策略
  • 2017-05-11Mysql中Insert into xxx on duplicate key update问题
  • 2018-12-05如何使用MySQL Workbench?
  • 2018-12-05对MySQL的初步了解
  • 2018-12-05详解mysql5.7.17最新稳定版本在linux下安装教程
  • 2018-12-05优化MySQL中的分页
  • 2017-05-11MySQL删除数据Delete与Truncate语句使用比较
  • 2017-05-11mysql 一次更新(update)多条记录的思路
  • 2018-12-05php 生成静态HTML页面最简单的方法示例
  • 2018-12-05MySQL线程处于Waiting for table flush的分析

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL可视化管理工具phpMyAdmin的学习
    • 数据库中的事务和并发问题的实例讲解
    • MSSQL 检查所使用的语句是否符合标准
    • mysql 终结点映射器中没有更多的终结点可用的解决方法
    • Oracle Portal及其门户网站开发概述
    • memcached与redis对比
    • MySQL中的常用工具的实例总结
    • php实现数组纵向转横向并过滤重复值的方法分析
    • mysql如何给表设置组合主键?
    • 汇总整理MYSQL相关操作命令

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有