目录
存储引擎及事务概念
一、存储引擎
首页 数据库 mysql教程 小贝_mysql存储引擎及事务概念_MySQL

小贝_mysql存储引擎及事务概念_MySQL

Jun 01, 2016 pm 12:59 PM
事务 概念

存储引擎及事务概念

简要:
1、什么是存储引擎
2、什么是事务

 

一、存储引擎

 

通俗地讲就是存储和管理数据的方式

形象例子:

 

某处地方的自行车管理员:李某,张某。每天都有很多人来存取自行车。李某的管理方式是: 车主自行存放,李某也不记录对方存的是什么车。取车时则要交管理费。也不检查取的是否是对方自己的车。相反,张某,则在车主存放车时,记录存放人的特征以及对应车的信息。当人来取车时,张某还要小心核对,人与车的特征是否对应。

 

从上述例子可知:

 

a、从效率的角度来看: 李某比张某快,因为其不用进行校对

 

b、从安全性的角度来看: 张某比李某要安全,因为其进行了校对。

 

总结: 实际上,mysql的存储引擎也是这样工作,每种存储引擎都有自身的存取方式,因此在选择上,应该根据实际情况来定。

 

1、如何查看mysql的引擎

mysql> show engines;

 

2、常用的存储引擎myisam与innodb的区别

2.1、myisam: 批量插入速度快,不支持事务,表锁

innodb:批量插入速度相对较慢,支持事务,行锁

 

 

二、事务

通俗地理解,指一组操作,要么都成功执行,要么都不执行。

例如:

用户A给用户B转账500元

先分析下这个流程:

1、判断用户A的卡余额是否大于500元,否则,则无法进行转账操作

2、在满足大于500元的基础上,用户A给用户B进行转账

3、转账操作成功,则用户A的卡余额减去500元,用户B加上500元

用程序描述下这个过程

 

登录后复制
登录后复制

 

<!--?php
$userA = $momeyA;
$userB = $momeyB;
if( $moneyA < 500 )
{
return false;
}
$sqlA = "update user set money=money-500 where name=&#39;userA&#39;";   //步骤A
$resultA = $db--->query($sqlA);
if( $resultA )
{
$sqlB = "update user set money=money+500 where name=&#39;userB&#39;";	//步骤B
$resultB = $db->query($sqlB);	
if( $resultB )
{
	return true;
}else
{
$sqlA = "update user set money=money+500 where name=&#39;userA&#39;";	//步骤C
$resultA = $db->query($sqlA);
return false;
}
}
$sqlA = "update user set money=money+500 where name=&#39;userA&#39;";	//步骤D
$resultA = $db->query($sqlA);
return false;
?>
登录后复制
 

 

登录后复制
登录后复制
 

 

从事务的角度看:

1、在转账过程中,出现有误,则该错误对双方而言,是没有影响的。即不可能因为某个错误,导致用户A白白减少500,而用户B莫名其妙多了500

2、在转账过程中,用户A是不可能看到自己的卡余额减下500,而用户B也是无法看到自己增加500元,因为转账操作还未结束。

3、单单从这个过程,用户A与用户B的总金额是不变的。只不过是一方减少,另一方增加

总结下事务的几个特性

a、 原子性:一组操作,要么都成功执行,要么都不执行

b、 隔离性:在所有的操作没有执行完毕之前,其它会话不能够看到中间改变的过程

c、 一致性:事务发生前和发生后,数据的总额依然匹配

d、 持久性:事务产生的影响不能够撤销

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

元宇宙概念是什么意思 什么是元宇宙概念 元宇宙概念是什么意思 什么是元宇宙概念 Feb 22, 2024 pm 03:55 PM

元宇宙是利用技术与现实世界映射与交互的虚幻世界。解析1元宇宙【Metaverse】是充分利用技术方式进行链接与创造的,与现实世界映射与交互的虚幻世界,拥有最新型社会发展体制的数据生活空间。 2元宇宙本质上是对现实世界的虚拟技术、数字化过程,需要对内容生产、经济系统、客户体验和实体世界内容等进行大量改造。 3但元宇宙的发展趋势是循序渐进的,是在共享的基础设施、标准规定及协议的支撑下,由许多工具、平台不断结合、进化而最终成型。补充:元宇宙是什么构成的1元宇宙由Meta和Verse构成,Meta是超越,V

Lock wait timeout exceeded; try restarting transaction - 如何解决MySQL报错:事务等待超时 Lock wait timeout exceeded; try restarting transaction - 如何解决MySQL报错:事务等待超时 Oct 05, 2023 am 08:46 AM

Lockwaittimeoutexceeded;tryrestartingtransaction-如何解决MySQL报错:事务等待超时在使用MySQL数据库时,有时可能会遇到一个常见的错误:Lockwaittimeoutexceeded;tryrestartingtransaction,该错误表示事务等待超时。这个错误通常发生在并

MySQL事务处理:自动提交与手动提交的区别 MySQL事务处理:自动提交与手动提交的区别 Mar 16, 2024 am 11:33 AM

MySQL事务处理:自动提交与手动提交的区别在MySQL数据库中,事务是一组SQL语句的集合,要么全部执行成功,要么全部执行失败,保证了数据的一致性和完整性。在MySQL中,事务可以分为自动提交和手动提交,其区别在于事务提交的时机以及对事务的控制范围。下面将详细介绍自动提交和手动提交的区别,并给出具体的代码示例来说明。一、自动提交在MySQL中,如果没有显示

掌握Spring MVC的关键概念:了解这些重要特性 掌握Spring MVC的关键概念:了解这些重要特性 Dec 29, 2023 am 09:14 AM

了解SpringMVC的关键特性:掌握这些重要的概念,需要具体代码示例SpringMVC是一种基于Java的Web应用开发框架,它通过模型-视图-控制器(MVC)的架构模式来帮助开发人员构建灵活可扩展的Web应用程序。了解和掌握SpringMVC的关键特性将使我们能够更加有效地开发和管理我们的Web应用程序。本文将介绍一些SpringMVC的重要概念

深入了解Gunicorn的基本原理和功能 深入了解Gunicorn的基本原理和功能 Jan 03, 2024 am 08:41 AM

Gunicorn的基本概念和作用Gunicorn是一个用于在PythonWeb应用程序中运行WSGI服务器的工具。WSGI(Web服务器网关接口)是Python语言定义的一种规范,用于定义Web服务器与Web应用程序之间的通信接口。Gunicorn通过实现WSGI规范,使得PythonWeb应用程序可以被部署和运行在生产环境中。Gunicorn的作用是作

Oracle RAC 简介及核心概念 Oracle RAC 简介及核心概念 Mar 07, 2024 am 11:39 AM

OracleRAC(RealApplicationClusters)简介及核心概念随着企业数据量的不断增长和对高可用性、高性能的需求日益突出,数据库集群技术变得越来越重要。OracleRAC(RealApplicationClusters)就是为了解决这一问题而设计的。OracleRAC是Oracle公司推出的一种高可用性、高性能的集群数据库解

PHP PDO教程:从基础到精通的进阶指南 PHP PDO教程:从基础到精通的进阶指南 Feb 19, 2024 pm 06:30 PM

1.PDO简介PDO是PHP的一个扩展库,它提供了一个面向对象的方式来操作数据库。PDO支持多种数据库,包括Mysql、postgresql、oracle、SQLServer等。PDO使开发人员能够使用统一的api来操作不同的数据库,这使得开发人员可以在不同的数据库之间轻松切换。2.PDO连接数据库要使用PDO连接数据库,首先需要创建一个PDO对象。PDO对象的构造函数接收三个参数:数据库类型、主机名、数据库用户名和密码。例如,以下代码创建了一个连接到mysql数据库的对象:$dsn="mysq

使用类的概念编写Java程序来计算矩形的面积和周长 使用类的概念编写Java程序来计算矩形的面积和周长 Sep 03, 2023 am 11:37 AM

Java语言是当今世界上最常用的面向对象编程语言之一。类的概念是面向对象语言中最重要的特性之一。一个类就像一个对象的蓝图。例如,当我们想要建造一座房子时,我们首先创建一份房子的蓝图,换句话说,我们创建一个显示我们将如何建造房子的计划。根据这个计划,我们可以建造许多房子。同样地,使用类,我们可以创建许多对象。类是创建许多对象的蓝图,其中对象是真实世界的实体,如汽车、自行车、笔等。一个类具有所有对象的特征,而对象具有这些特征的值。在本文中,我们将使用类的概念编写一个Java程序,以找到矩形的周长和面

See all articles