1. 請簡述MYSQL資料庫存儲引擎有幾種,並簡述其特點
MySQL有多種存儲引擎,每種存儲引擎有各自的優缺點,可以擇優選擇使用:
MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。
MySQL支持數個存儲引擎作為對不同表的類型的處理器。MySQL存儲引擎包括處理事務安全表的引擎和處理非事務安全表的引擎:
· MyISAM管理非事務表。它提供高速存儲和檢索,以及全文搜索能力。MyISAM在所有MySQL配置里被支持,它是默認的存儲引擎,除非你配置MySQL默認使用另外一個引擎。
· MEMORY存儲引擎提供「內存中」表。MERGE存儲引擎允許集合將被處理同樣的MyISAM表作為一個單獨的表。就像MyISAM一樣,MEMORY和MERGE存儲引擎處理非事務表,這兩個引擎也都被默認包含在MySQL中。
注釋:MEMORY存儲引擎正式地被確定為HEAP引擎。
· InnoDB和BDB存儲引擎提供事務安全表。BDB被包含在為支持它的操作系統發布的MySQL-Max二進制分發版里。InnoDB也默認被包括在所 有MySQL 5.1二進制分發版里,你可以按照喜好通過配置MySQL來允許或禁止任一引擎。
· EXAMPLE存儲引擎是一個「存根」引擎,它不做什麼。你可以用這個引擎創建表,但沒有數據被存儲於其中或從其中檢索。這個引擎的目的是服務,在 MySQL源代碼中的一個例子,它演示說明如何開始編寫新存儲引擎。同樣,它的主要興趣是對開發者。
· NDB Cluster是被MySQL Cluster用來實現分割到多台計算機上的表的存儲引擎。它在MySQL-Max 5.1二進制分發版里提供。這個存儲引擎當前只被Linux, Solaris, 和Mac OS X 支持。在未來的MySQL分發版中,我們想要添加其它平台對這個引擎的支持,包括Windows。
· ARCHIVE存儲引擎被用來無索引地,非常小地覆蓋存儲的大量數據。
· CSV存儲引擎把數據以逗號分隔的格式存儲在文本文件中。
· BLACKHOLE存儲引擎接受但不存儲數據,並且檢索總是返回一個空集。
· FEDERATED存儲引擎把數據存在遠程資料庫中。在MySQL 5.1中,它只和MySQL一起工作,使用MySQL C Client API。在未來的分發版中,我們想要讓它使用其它驅動器或客戶端連接方法連接到另外的數據源。
比較常用的是MyISAM和InnoBD
2. Mysql資料庫3種存儲引擎有什麼區別
MySQL常見的三種存儲引擎為InnoDB、MyISAM和MEMORY。其區別體現在事務安全、存儲限制、空間使用、內存使用、插入數據的速度和對外鍵的支持。具體如下:
1、事務安全:
InnoDB支持事務安全,MyISAM和MEMORY兩個不支持。
2、存儲限制:
InnoDB有64TB的存儲限制,MyISAM和MEMORY要是具體情況而定。
3、空間使用:
InnoDB對空間使用程度較高,MyISAM和MEMORY對空間使用程度較低。
4、內存使用:
InnoDB和MEMORY對內存使用程度較高,MyISAM對內存使用程度較低。
5、插入數據的速度:
InnoDB插入數據的速度較低,MyISAM和MEMORY插入數據的速度較高。
6、對外鍵的支持:
InnoDB對外鍵支持情況較好,MyISAM和MEMORY兩個不支持外鍵。
三種引擎特點如下:
1、InnoDB存儲引擎
InnoDB是事務型資料庫的首選引擎,支持事務安全表(ACID),其它存儲引擎都是非事務安全表,支持行鎖定和外鍵,MySQL5.5以後默認使用InnoDB存儲引擎。
InnoDB特點: 支持事務處理,支持外鍵,支持崩潰修復能力和並發控制。如果需要對事務的完整性要求比較高(比如銀行),要求實現並發控制(比如售票),那選擇InnoDB有很大的優勢。
如果需要頻繁的更新、刪除操作的資料庫,也可以選擇InnoDB,因為支持事務的提交(commit)和回滾(rollback)。
2、MyISAM存儲引擎
MyISAM基於ISAM存儲引擎,並對其進行擴展。它是在Web、數據倉儲和其他應用環境下最常使用的存儲引擎之一。MyISAM擁有較高的插入、查詢速度,但不支持事務,不支持外鍵。
MyISAM特點: 插入數據快,空間和內存使用比較低。如果表主要是用於插入新記錄和讀出記錄,那麼選擇MyISAM能實現處理高效率。如果應用的完整性、並發性要求比較低,也可以使用
3、MEMORY存儲引擎
MEMORY存儲引擎將表中的數據存儲到內存中,為查詢和引用其他表數據提供快速訪問。
MEMORY特點: 所有的數據都在內存中,數據的處理速度快,但是安全性不高。如果需要很快的讀寫速度,對數據的安全性要求較低,可以選擇MEMOEY。
它對表的大小有要求,不能建立太大的表。所以,這類資料庫只使用在相對較小的資料庫表。
(2)數據引擎有哪些擴展閱讀:
mysql其餘不太常見的存儲引擎如下:
1、BDB: 源自Berkeley DB,事務型資料庫的另一種選擇,支持COMMIT和ROLLBACK等其他事務特性
2、Merge :將一定數量的MyISAM表聯合而成一個整體,在超大規模數據存儲時很有用
3、Archive :非常適合存儲大量的獨立的,作為歷史記錄的數據。因為它們不經常被讀取。Archive擁有高效的插入速度,但其對查詢的支持相對較差
4、Federated: 將不同的Mysql伺服器聯合起來,邏輯上組成一個完整的資料庫。非常適合分布式應用
5、Cluster/NDB :高冗餘的存儲引擎,用多台數據機器聯合提供服務以提高整體性能和安全性。適合數據量大,安全和性能要求高的應用
6、CSV: 邏輯上由逗號分割數據的存儲引擎。它會在資料庫子目錄里為每個數據表創建一個.CSV文件。這是一種普通文本文件,每個數據行佔用一個文本行。CSV存儲引擎不支持索引。
7、BlackHole :黑洞引擎,寫入的任何數據都會消失,一般用於記錄binlog做復制的中繼
3. MySQL資料庫常用的搜索引擎有哪些,區別是什麼
MyISAM、InnoDB、Heap(Memory)、NDB
貌似一般都是使用 InnoDB的,
mysql的存儲引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事務安全表,其他存儲引擎都是非事務安全表。
最常使用的2種存儲引擎:
1.Myisam是Mysql的默認存儲引擎,當create創建新表時,未指定新表的存儲引擎時,默認使用Myisam。每個MyISAM在磁碟上存儲成三個文件。文件名都和表名相同,擴展名分別是.frm(存儲表定義)、.MYD(MYData,存儲數據)、.MYI(MYIndex,存儲索引)。數據文件和索引文件可以放置在不同的目錄,平均分布io,獲得更快的速度。
2.InnoDB存儲引擎提供了具有提交、回滾和崩潰恢復能力的事務安全。但是對比Myisam的存儲引擎,InnoDB寫的處理效率差一些並且會佔用更多的磁碟空間以保留數據和索引。
4. MySQL資料庫的資料庫引擎有哪些
目前最流行的是InnoDB。
5. MySQL資料庫中所支持的3個引擎有哪些
因此,ISAM執行讀取操作的速度很快,而且不佔用大量的內存和存儲資源。 ISAM的兩個主要不足之處在於,它不支持事務處理,也不能夠容錯:如果你的硬碟崩潰了,那麼數據文件就無法恢復了。如果你正在把ISAM用在關鍵任務應用程序里,那就必須經常備份你所有的實時數據,通過其復制特性,MySQL(和PHP搭配之最佳組合)能夠支持這樣的備份應用程序。 MyISAMMyISAM是MySQL(和PHP搭配之最佳組合)的ISAM擴展格式和預設的MySQL資料庫引擎。除了提供ISAM里所沒有的索引和欄位管理的大量功能,MyISAM還使用一種表格鎖定的機制,來優化多個並發的讀寫操作。其代價是你需要經常運行OPTIMIZE TABLE命令,來恢復被更新機制所浪費的空間。 MyISAM還有一些有用的擴展,例如用來修復MySQL資料庫文件的MyISAMChk工具和用來恢復浪費空間的MyISAMPack工具。 HEAPHEAP允許只駐留在內存里的臨時表格。駐留在內存里讓HEAP要比ISAM和MyISAM都快,但是它所管理的數據是不穩定的,而且如果在關機之前沒有進行保存,那麼所有的數據都會丟失。在數據行被刪除的時候,HEAP也不會浪費大量的空間。HEAP表格在你需要使用SELECT表達式來選擇和操控數據的時候非常有用。要記住,在用完表格之後就刪除表格。讓我再重復一遍:在你用完表格之後,不要忘記刪除表格。 InnoDB和Berkley DB InnoDB和Berkley DB(BDB)資料庫引擎都是造就MySQL(和PHP搭配之最佳組合)靈活性的技術的直接產品,這項技術就是MySQL(和PHP搭配之最佳組合)++ API。在使用MySQL(和PHP搭配之最佳組合)的時候,你所面對的每一個挑戰幾乎都源於ISAM和MyISAM資料庫引擎不支持事務處理也不支持外來鍵。盡管要比ISAM和MyISAM引擎慢很多,但是InnoDB和BDB包括了對事務處理和外來鍵的支持,這兩點都是前兩個引擎所沒有的。如前所述源碼天空 ,如果你的設計需要這些特性中的一者或者兩者,那你就要被迫使用後兩個引擎中的一個了。
6. mysql資料庫的引擎和表引擎的區別
這個是考慮性能的問題,還有事務的支持,吧 網路一下你就知道
MyISAM、InnoDB、Heap(Memory)、NDB
貌似一般都是使用 InnoDB的,
mysql的存儲引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事務安全表,其他存儲引擎都是非事務安全表。
最常使用的2種存儲引擎:
1.Myisam是Mysql的默認存儲引擎,當create創建新表時,未指定新表的存儲引擎時,默認使用Myisam。每個MyISAM在磁碟上存儲成三個文件。文件名都和表名相同,擴展名分別是.frm(存儲表定義)、.MYD(MYData,存儲數據)、.MYI(MYIndex,存儲索引)。數據文件和索引文件可以放置在不同的目錄,平均分布io,獲得更快的速度。
2.InnoDB存儲引擎提供了具有提交、回滾和崩潰恢復能力的事務安全。但是對比Myisam的存儲引擎,InnoDB寫的處理效率差一些並且會佔用更多的磁碟空間以保留數據和索引。
不知道是不是對你有幫助
7. 資料庫引擎 什麼是資料庫引擎。誰能詳細介紹一下
每種資料庫的數據格式,內部實現機制都是不同的,
要利用一種開發工具訪問一種資料庫,就必須通過一種中介程序,
這種開發工具與資料庫之間的中介程序就叫資料庫引擎。
8. 有沒有資料庫引擎賣
沒有
sql server 是一個集成工具,資料庫引擎是使用這個工具的手段和途徑,通過它去訪問存儲數據數據在sql server中以特定的數據結構存儲,資料庫引擎裡面定義了訪問這種數據結構的演算法。
每種資料庫的數據格式,內部實現機制都是不同的,要利用一種開發工具訪問一種資料庫,就必須通過一種中介程序,這種開發工具與資料庫之間的中介程序就叫資料庫引擎。
每種資料庫的數據格式,內部實現機制都是不同的, 要利用一種開發工具訪問一種資料庫,就必須通過一種中介程序, 這種開發工具與資料庫之間的中介程序就叫資料庫引擎。
9. mysql資料庫支持的存儲引擎有哪些默認的存儲引擎是什麼主要特性有什麼
1、MySQL常見的存儲引擎有:InnoDB、MyISAM。
2、Mysql 5.0之後的版本,默認的存儲引擎就是InnoDB。
3、各自主要特點有:
事務:MyISAM不支持,InnoDB支持。
鎖級別: MyISAM 表級鎖,InnoDB 行級鎖及外鍵約束。
MyISAM存儲表的總行數;InnoDB不存儲總行數。
MyISAM採用非聚集索引,B+樹葉子存儲指向數據文件的指針。InnoDB主鍵索引採用聚集索引,B+樹葉子存儲數據。
MyISAM適合場景: 插入不頻繁,查詢非常頻繁,如果執行大量的SELECT,MyISAM是更好的選擇, 沒有事務。
InnoDB適合場景: 可靠性要求比較高,或者要求事務; 表更新和查詢都相當的頻繁, 大量的INSERT或UPDATE。