小贝_mysql存储引擎及事务概念_MySQL
存储引擎及事务概念
简要:
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='userA'"; //步骤A $resultA = $db--->query($sqlA); if( $resultA ) { $sqlB = "update user set money=money+500 where name='userB'"; //步骤B $resultB = $db->query($sqlB); if( $resultB ) { return true; }else { $sqlA = "update user set money=money+500 where name='userA'"; //步骤C $resultA = $db->query($sqlA); return false; } } $sqlA = "update user set money=money+500 where name='userA'"; //步骤D $resultA = $db->query($sqlA); return false; ?>
从事务的角度看:
1、在转账过程中,出现有误,则该错误对双方而言,是没有影响的。即不可能因为某个错误,导致用户A白白减少500,而用户B莫名其妙多了500
2、在转账过程中,用户A是不可能看到自己的卡余额减下500,而用户B也是无法看到自己增加500元,因为转账操作还未结束。
3、单单从这个过程,用户A与用户B的总金额是不变的。只不过是一方减少,另一方增加
总结下事务的几个特性
a、 原子性:一组操作,要么都成功执行,要么都不执行
b、 隔离性:在所有的操作没有执行完毕之前,其它会话不能够看到中间改变的过程
c、 一致性:事务发生前和发生后,数据的总额依然匹配
d、 持久性:事务产生的影响不能够撤销

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Lockwaittimeoutexceeded;tryrestartingtransaction-如何解決MySQL報錯:事務等待逾時在使用MySQL資料庫時,有時可能會遇到一個常見的錯誤:Lockwaittimeoutexceeded;tryrestartingtransaction,該錯誤表示事務等待逾時。這個錯誤通常發生在並且

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

MySQL事務處理:自動提交與手動提交的差異在MySQL資料庫中,事務是一組SQL語句的集合,要麼全部執行成功,要麼全部執行失敗,保證了資料的一致性和完整性。在MySQL中,事務可以分為自動提交和手動提交,其區別在於事務提交的時機以及對事務的控制範圍。以下將詳細介紹自動提交和手動提交的區別,並給出具體的程式碼範例來說明。一、自動提交在MySQL中,如果沒有顯示

Gunicorn的基本概念和作用Gunicorn是一個用於在PythonWeb應用程式中運行WSGI伺服器的工具。 WSGI(Web伺服器閘道介面)是Python語言定義的一種規範,用來定義Web伺服器與Web應用程式之間的通訊介面。 Gunicorn透過實作WSGI規範,使得PythonWeb應用程式可以被部署和運行在生產環境中。 Gunicorn的作用是作

了解SpringMVC的關鍵特性:掌握這些重要的概念,需要具體程式碼範例SpringMVC是一種基於Java的Web應用開發框架,它透過模型-視圖-控制器(MVC)的架構模式來幫助開發人員建立靈活可擴展的Web應用程式。了解和掌握SpringMVC的關鍵特性將使我們能夠更有效地開發和管理我們的網路應用程式。本文將介紹一些SpringMVC的重要概念

OracleRAC(RealApplicationClusters)簡介及核心概念隨著企業資料量的不斷增長和對高可用性、高效能的需求日益突出,資料庫叢集技術變得越來越重要。 OracleRAC(RealApplicationClusters)就是為了解決這個問題而設計的。 OracleRAC是Oracle公司推出的一種高可用性、高效能的叢集資料庫解

MongoDB技術開發中遇到的事務管理問題解決方案分析隨著現代應用程式變得越來越複雜和龐大,對資料的事務處理需求也越來越高。作為一種流行的NoSQL資料庫,MongoDB在資料管理方面有著出色的效能和擴展性。然而,MongoDB在資料一致性和事務管理方面相對較弱,為開發人員帶來了挑戰。在本文中,我們將探討在MongoDB開發中遇到的事務管理問題,並提出一些解

1.PDO簡介PDO是PHP的擴充庫,它提供了一個物件導向的方式來操作資料庫。 PDO支援多種資料庫,包括Mysql、postgresql、oracle、SQLServer等。 PDO使開發人員能夠使用統一的api來操作不同的資料庫,這使得開發人員可以在不同的資料庫之間輕鬆切換。 2.PDO連接資料庫要使用PDO連接資料庫,首先需要建立一個PDO物件。 PDO物件的建構函式接收三個參數:資料庫類型、主機名稱、資料庫使用者名稱和密碼。例如,以下程式碼建立了一個連接到mysql資料庫的物件:$dsn="mysq
