开发者社区> cciafumrihyou> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

MySQL基础-并发事务及存储引擎

简介: 并发事务问题
+关注继续查看

并发事务问题

  1. 赃读:一个事务读到另外一个事务还没有提交的数据。
  • 比如B读取到了A未提交的数据。
  1. 不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读。
  • 事务A两次读取同一条记录,但是读取到的数据却是不一样的。
  1. 幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了 "幻影"。

事务隔离级别

为了解决并发事务所引发的问题,在数据库中引入了事务隔离级别。主要有以下几种:

隔离级别脏读不可重复读幻读
Read uncommitted
Read committed×
Repeatable Read(默认)××
Serializable×××

查看事务隔离级别

SELECT @@TRANSACTION_ISOLATION;

设置事务隔离级别

SET [ SESSION | GLOBAL ] TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED |READ COMMITTED | REPEATABLE READ | SERIALIZABLE }

  • 注意:事务隔离级别越高,数据越安全,但是性能越低。

存储引擎

  • MySQL体系结构image

连接层

最上层是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于 TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程 池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务 器也会为安全接入的每个客户端验证它所具有的操作权限。

服务层

第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部 分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如 过程、函数等。在该层,服务器会解 析查询并创建相应的内部解析树,并对其完成相应的优化如确定表的查询的顺序,是否利用索引等, 最后生成相应的执行操作。如果是select语句,服务器还会查询内部的缓存,如果缓存空间足够大, 这样在解决大量读操作的环境中能够很好的提升系统的性能。

引擎层

存储引擎层, 存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通 信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。数据库 中的索引是在存储引擎层实现的。

存储层

数据存储层, 主要是将数据(如: redolog、undolog、数据、索引、二进制日志、错误日志、查询 日志、慢查询日志等)存储在文件系统之上,并完成与存储引擎的交互。和其他数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎上,插件式的存储引擎架构,将查询处理和其他的系统任务以及数据的存储提取分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Java 基础】Java 数据类型和 MySql 数据类型对应表
【Java 基础】Java 数据类型和 MySql 数据类型对应表MySQL 数据类型对应 Java 数据类型 类型名称 显示长度 数据库类型 JAVA 类型 JDBC 类型索引 (int) 描述 VARCHAR L+N VARCHAR java.lang.String 12 CHAR N CHAR java.lang.String 1 BLOB L+N BLOB java.lang.byte[] -4 TEXT 65535 VARCHAR java.lang.String -1 INTEGER 4 INTEGER UNSIGNED java.lang.Long 4 TINYINT
0 0
MySQL数据库基础
文章主要介绍MySQL数据库中一些常见的操作,为专栏文章,系列介绍
0 0
Mysql数据库连接池的简单实现(基于C++11), 基础学完, 包教包会.
Mysql数据库连接池的简单实现(基于C++11), 基础学完, 包教包会.
0 0
MySQL常用基础 - 小白必看(二)
概念:是一个数据定义语言 该语言部分包括: 1、对数据库的常用操作 2、对表结构的常用操作
0 0
MySQL创建数据表基础篇
MySQL创建数据表基础篇
0 0
MySQL 数据类型基础篇
MySQL 数据类型基础篇
0 0
MySQL创建数据库基础篇
MySQL创建数据库基础篇
0 0
MySQL数据库系列(一)------基础
数据不会随程序结束而消失
0 0
【0基础学习mysql】之DML-表中数据的操作
【0基础学习mysql】之DML-表中数据的操作
0 0
MySQL数据库基础数据入门级[图文详解]
MySQL数据库基础数据入门级[图文详解]
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
让 MySQL 原生分布式触手可及
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云数据库RDS MySQL从入门到高阶
立即下载