溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL數(shù)據(jù)庫存儲引擎

發(fā)布時間:2020-05-29 13:25:10 來源:網(wǎng)絡(luò) 閱讀:349 作者:wpfbcr 欄目:數(shù)據(jù)庫

MySQL數(shù)據(jù)庫存儲引擎

MySQL數(shù)據(jù)庫是一種關(guān)系型數(shù)據(jù)庫,數(shù)據(jù)時存放在數(shù)據(jù)庫中的一張一張的表中的,各個表之間或有關(guān)聯(lián),表中的每行相關(guān),每列是不相關(guān)。這是關(guān)系型數(shù)據(jù)庫的基本存儲方式。

MySQL存儲引擎是為了在各種不同的條件下對數(shù)據(jù)存放的可靠性、關(guān)聯(lián)性、讀寫等方面做出的一個可供選擇的存儲模式。

當前使用較多的MySQL存儲引擎主要有以下幾個,MyISAM,InnoDB,BdB,Memory等,這些存儲引擎主要在以下幾個方面有所區(qū)分,鎖定水平、處理方式、存儲方式和索引技巧方面有所不同。

mysql下顯示存儲引擎和更改存儲引擎的方法都很簡單


show engines;顯示所支持的

alter table tablename engine = whichengine;修改存儲引擎

create table tablename (id int,name char(15)) engine = whichengine;新建時更改


常見存儲引擎的區(qū)別:

1>MyISAM:它的前身是ISAM,它是ISAM的擴展,支持ISAM所不支持的索引和字段管理功能,它的特點是表鎖定,可以處理高并發(fā)的讀寫操作,是默認的存儲引擎。

2>InnoDB和BdB:這兩個存儲引擎是唯一可支持事務(wù)處理的存儲引擎,區(qū)別是InnoDB是行鎖定的而BDB是頁鎖定的。

3>Memory:聽名字就知道這是一個用內(nèi)存來暫存數(shù)據(jù)的存儲模式,讀寫效率自然不用說,但在數(shù)據(jù)庫關(guān)閉的時候數(shù)據(jù)會全部丟失。


三種鎖定水平:

1>表鎖定:為了防止多個用戶同時更新一張表,表鎖定在數(shù)據(jù)更新的時候它會鎖定整個表,所以在多用戶訪問時會造成很大延時,所以并發(fā)性差,但開銷小。

2>行鎖定:因為表鎖定的低并發(fā),所以產(chǎn)生了行鎖定,在訪問數(shù)據(jù)庫時對數(shù)據(jù)庫的每一行進行鎖定,可以使得訪問不同行的用戶同時訪問同一張表,但它的開銷大,并且還會造成死鎖。(對于為什么會產(chǎn)生死鎖的分析這里給出一個博客鏈接說的很盡http://www.cnblogs.com/bamboos/p/3532150.html

3>頁鎖定:在行鎖定和表鎖定的中間生存著的便是頁鎖定了,它是折中方式。



向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI