小貝_mysql 儲存引擎及事務概念,小貝_mysql

來源:互聯網
上載者:User

小貝_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元

用程式描述下這個過程

</pre><p><pre name="code" class="php"><?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、 持久性:事務產生的影響不能夠撤銷


The quieter you become,the more you are able to hear!

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.