MySQL數據庫存儲引擎

MySQL數據庫存儲引擎html

MySQL數據庫是一種關係型數據庫,數據時存放在數據庫中的一張一張的表中的,各個表之間或有關聯,表中的每行相關,每列是不相關。這是關係型數據庫的基本存儲方式。mysql

MySQL存儲引擎是爲了在各類不一樣的條件下對數據存放的可靠性、關聯性、讀寫等方面作出的一個可供選擇的存儲模式。sql

當前使用較多的MySQL存儲引擎主要有如下幾個,MyISAM,InnoDB,BdB,Memory等,這些存儲引擎主要在如下幾個方面有所區分,鎖定水平、處理方式、存儲方式和索引技巧方面有所不一樣。數據庫

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


show engines;顯示所支持的ide

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

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


常見存儲引擎的區別:htm

1>MyISAM:它的前身是ISAM,它是ISAM的擴展,支持ISAM所不支持的索引和字段管理功能,它的特色是表鎖定,能夠處理高併發的讀寫操做,是默認的存儲引擎。blog

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

3>Memory:聽名字就知道這是一個用內存來暫存數據的存儲模式,讀寫效率天然不用說,但在數據庫關閉的時候數據會所有丟失。


三種鎖定水平:

1>表鎖定:爲了防止多個用戶同時更新一張表,表鎖定在數據更新的時候它會鎖定整個表,因此在多用戶訪問時會形成很大延時,因此併發性差,但開銷小。

2>行鎖定:由於表鎖定的低併發,因此產生了行鎖定,在訪問數據庫時對數據庫的每一行進行鎖定,可使得訪問不一樣行的用戶同時訪問同一張表,但它的開銷大,而且還會形成死鎖。(對於爲何會產生死鎖的分析這裏給出一個博客連接說的很盡http://www.cnblogs.com/bamboos/p/3532150.html

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

相關文章
相關標籤/搜索