Mysql表的七種類型詳細介紹
更新時間:2012年11月29日 11:13:53 作者:
Mysql表類型都有哪些是一定需要知道的,下面就為您介紹七種Mysql表類型,希望能對您學(xué)習(xí)Mysql表類型有所幫助,需要的朋友可以了解下
學(xué)習(xí)Mysql數(shù)據(jù)庫,Mysql表類型都有哪些是一定需要知道的,下面就為您介紹七種Mysql表類型,希望能對您學(xué)習(xí)Mysql表類型有所幫助。
MySQL作為當前最為流行的免費數(shù)據(jù)庫服務(wù)引擎,已經(jīng)風(fēng)靡了很長一段時間,不過也許也有人對于MySQL的內(nèi)部環(huán)境不很了解,尤其那些針對并發(fā)性處理的機制。今天,我們先了解一下Mysql表類型,以及它們的一些簡單性質(zhì)。
截至目前,MySQL一共向用戶提供了包括DBD、HEAP、ISAM、MERGE、MyIAS、InnoDB以及Gemeni這7種Mysql表類型。其中DBD、InnoDB屬于事務(wù)安全類表,而其他屬于事務(wù)非安全類表。
DBD
Berkeley DB(DBD)表是支持事務(wù)處理的表,由Sleepycat軟件公司開發(fā)。它提供MySQL用戶期待已久的功能--事務(wù)控制。事務(wù)控制在任何數(shù)據(jù)庫系統(tǒng)中都是一個極有價值的功能,因為它們確保一組命令能成功地執(zhí)行或回滾。
HEAP
HEAP表是MySQL中存取數(shù)據(jù)最快的表。這是因為他們使用存儲在動態(tài)內(nèi)存中的一個散列索引,不過如果MySQL或服務(wù)器崩潰,這些內(nèi)存數(shù)據(jù)將會丟失。
ISAM
ISAM表是早期MySQL版本的缺省表類型,直到MyIASM開發(fā)出來。建議不要再使用它。
MERGE
MERGE是一個有趣的新類型,在3.23.25之后出現(xiàn)。一個MERGE表實際上是又一個MyISAM表的集合,合并而成的一個表,主要是為了效率的考慮,因為這樣不僅僅可以提高速度、搜索效率、修復(fù)效率而且還節(jié)省了磁盤空間。
MyIASM
MyIASM基于了IASM代碼,應(yīng)該可以說是IASM的衍生品,不過增加了不少有用的擴展。它是MySQL的默認數(shù)據(jù)表類型,基于了傳統(tǒng)的ISAM類型,ISAM是Indexed Sequential Access Method(有索引的順序訪問方法)的縮寫,一般來說,它是存儲記錄和文件的標準方法。與其他存儲引擎比較,MyISAM具有檢查和修復(fù)表格的大多數(shù)工具。ISAM表格可以被壓縮,而且它們支持全文搜索,不過它們是事務(wù)不安全的,而且也不支持外鍵。如果事務(wù)回滾將會造成不完全回滾,從而不具備原子性。所以假如忽略事務(wù)以及訪問并發(fā)性的話,并且需要執(zhí)行大量的SELECT檢索語句的話,MyISAM將是最好的選擇。
InnoDB
InnoDB是MySQL 4.0之后推出的一種比較新的數(shù)據(jù)表類型,這種類型是事務(wù)安全的。它與BDB類型具有相同的特性,它們還支持外鍵。InnoDB表格速度很快具有比BDB還豐富的特性,因此如果需要一個事務(wù)安全的存儲引擎,建議使用它。如果你的數(shù)據(jù)執(zhí)行大量的INSERT或UPDATE,出于性能方面的考慮,同樣應(yīng)該使用InnoDB表。對于支持事務(wù)的InnoDB類型的表來說,影響速度的主要原因是AUTOCOMMIT默認設(shè)置是打開的,而且程序沒有顯式調(diào)用BEGIN 開始事務(wù),導(dǎo)致每插入一條都自動提交,嚴重影響了速度??梢栽趫?zhí)行sql前調(diào)用begin,多條sql形成一個事物(即使autocommit打開也可以),將大大提高性能。
Gemeni
Gemeni表,據(jù)聽說也是在MySQL 4.0之后推出的,不過截至當前,很少有針對它的介紹,同樣應(yīng)用也就更少了,我們暫時不作介紹。
MySQL的數(shù)據(jù)表類型很多,其中比較重要的是MyISAM,InnoDB這兩種。
這兩種類型各有優(yōu)缺點,需要根據(jù)實際情況選擇適合的,MySQL支持對不同的表設(shè)置不同的類型。下面做個簡單的對比:
MyISAM表類型是一種比較成熟穩(wěn)定的表類型,但是MyISAM對一些功能不支持。
MySQL作為當前最為流行的免費數(shù)據(jù)庫服務(wù)引擎,已經(jīng)風(fēng)靡了很長一段時間,不過也許也有人對于MySQL的內(nèi)部環(huán)境不很了解,尤其那些針對并發(fā)性處理的機制。今天,我們先了解一下Mysql表類型,以及它們的一些簡單性質(zhì)。
截至目前,MySQL一共向用戶提供了包括DBD、HEAP、ISAM、MERGE、MyIAS、InnoDB以及Gemeni這7種Mysql表類型。其中DBD、InnoDB屬于事務(wù)安全類表,而其他屬于事務(wù)非安全類表。
DBD
Berkeley DB(DBD)表是支持事務(wù)處理的表,由Sleepycat軟件公司開發(fā)。它提供MySQL用戶期待已久的功能--事務(wù)控制。事務(wù)控制在任何數(shù)據(jù)庫系統(tǒng)中都是一個極有價值的功能,因為它們確保一組命令能成功地執(zhí)行或回滾。
HEAP
HEAP表是MySQL中存取數(shù)據(jù)最快的表。這是因為他們使用存儲在動態(tài)內(nèi)存中的一個散列索引,不過如果MySQL或服務(wù)器崩潰,這些內(nèi)存數(shù)據(jù)將會丟失。
ISAM
ISAM表是早期MySQL版本的缺省表類型,直到MyIASM開發(fā)出來。建議不要再使用它。
MERGE
MERGE是一個有趣的新類型,在3.23.25之后出現(xiàn)。一個MERGE表實際上是又一個MyISAM表的集合,合并而成的一個表,主要是為了效率的考慮,因為這樣不僅僅可以提高速度、搜索效率、修復(fù)效率而且還節(jié)省了磁盤空間。
MyIASM
MyIASM基于了IASM代碼,應(yīng)該可以說是IASM的衍生品,不過增加了不少有用的擴展。它是MySQL的默認數(shù)據(jù)表類型,基于了傳統(tǒng)的ISAM類型,ISAM是Indexed Sequential Access Method(有索引的順序訪問方法)的縮寫,一般來說,它是存儲記錄和文件的標準方法。與其他存儲引擎比較,MyISAM具有檢查和修復(fù)表格的大多數(shù)工具。ISAM表格可以被壓縮,而且它們支持全文搜索,不過它們是事務(wù)不安全的,而且也不支持外鍵。如果事務(wù)回滾將會造成不完全回滾,從而不具備原子性。所以假如忽略事務(wù)以及訪問并發(fā)性的話,并且需要執(zhí)行大量的SELECT檢索語句的話,MyISAM將是最好的選擇。
InnoDB
InnoDB是MySQL 4.0之后推出的一種比較新的數(shù)據(jù)表類型,這種類型是事務(wù)安全的。它與BDB類型具有相同的特性,它們還支持外鍵。InnoDB表格速度很快具有比BDB還豐富的特性,因此如果需要一個事務(wù)安全的存儲引擎,建議使用它。如果你的數(shù)據(jù)執(zhí)行大量的INSERT或UPDATE,出于性能方面的考慮,同樣應(yīng)該使用InnoDB表。對于支持事務(wù)的InnoDB類型的表來說,影響速度的主要原因是AUTOCOMMIT默認設(shè)置是打開的,而且程序沒有顯式調(diào)用BEGIN 開始事務(wù),導(dǎo)致每插入一條都自動提交,嚴重影響了速度??梢栽趫?zhí)行sql前調(diào)用begin,多條sql形成一個事物(即使autocommit打開也可以),將大大提高性能。
Gemeni
Gemeni表,據(jù)聽說也是在MySQL 4.0之后推出的,不過截至當前,很少有針對它的介紹,同樣應(yīng)用也就更少了,我們暫時不作介紹。
MySQL的數(shù)據(jù)表類型很多,其中比較重要的是MyISAM,InnoDB這兩種。
這兩種類型各有優(yōu)缺點,需要根據(jù)實際情況選擇適合的,MySQL支持對不同的表設(shè)置不同的類型。下面做個簡單的對比:
MyISAM表類型是一種比較成熟穩(wěn)定的表類型,但是MyISAM對一些功能不支持。
相關(guān)文章
MySQL解決Navicat設(shè)置默認字符串時的報錯問題
本文主要介紹了MySQL解決Navicat設(shè)置默認字符串時的報錯,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
SQL?日期處理視圖創(chuàng)建(常見數(shù)據(jù)類型查詢防范?SQL注入)
這篇文章主要為大家介紹了SQL日期處理和視圖創(chuàng)建:常見數(shù)據(jù)類型、示例查詢和防范?SQL?注入方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
MySQL實現(xiàn)查詢處理JSON數(shù)據(jù)的示例詳解
這篇文章主要為大家詳細介紹了MySQL如何實現(xiàn)查詢處理JSON數(shù)據(jù),文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以了解一下2023-06-06
MySQL的MRR(Multi-Range Read)優(yōu)化原理解析
MRR優(yōu)化是MySQL中一種重要的查詢優(yōu)化技術(shù),它通過減少磁盤I/O的隨機性和提高緩存效率,顯著提升了查詢性能,這篇文章主要介紹了MySQL的MRR(Multi-Range Read)優(yōu)化原理詳解,需要的朋友可以參考下2024-08-08

