mysql有不少資料引擎,但是常用就兩個,myisam (公尺色木)和 innodb
摘自其他文件
兩種儲存引擎的大致區別表現在:
、(事務支援不同)innodb支援事務,myisam不支援,這一點是非常之重要。事務是一種高階的處理方式,如在一些列增刪改中只要哪個出錯還可以回滾還原,而myisam就不可以了。
2、myisam適合查詢以及插入為主的應用,innodb適合頻繁修改以及涉及到安全性較高的應用。
3、innodb支援外來鍵,myisam不支援。
4、從mysql5.5.5以後,innodb是預設引擎。
5、innodb不支援fulltext型別的索引。
6、innodb中不儲存表的行數,如select count() from table時,innodb需要掃瞄一遍整個表來計算有多少行,但是myisam只要簡單的讀出儲存好的行數即可。注意的是,當count()語句包含where條件時myisam也需要掃瞄整個表。
7、對於自增長的字段,innodb中必須包含只有該字段的索引,但是在myisam表中可以和其他字段一起建立聯合索引。
8、清空整個表時,innodb是一行一行的刪除,效率非常慢。myisam則會重建表。
9、(鎖粒度)innodb支援行鎖(某些情況下還是鎖整表,如 update table set a=1 where user like 『%lee%』),myisam表鎖。
10、(儲存空間)innodb既快取索引檔案,又快取資料檔案,myisam 只能快取索引檔案。
關於myisam與innodb選擇使用
myisam和innodb是mysql資料庫提供的兩種儲存引擎。兩者的優劣可謂是各有千秋。innodb會支援一些關聯式資料庫的高階功能,如事務功能和行級鎖,myisam不支援。myisam的效能更優,占用的儲存空間少。所以,選擇何種儲存引擎,視具體應用而定:
但要注意,innodb的行級鎖是有條件的。在where條件沒有使用主鍵時,照樣會鎖全表。比如delete from mytable這樣的刪除語句。
myisam索引和資料是分開的,而且其索引是壓縮的,可以更好地利用記憶體。所以它的查詢效能明顯優於innodb。壓縮後的索引也能節約一些磁碟空間。myisam擁有全文索引的功能,這可以極大地優化like查詢的效率。
現在一般都是選用innodb了,主要是myisam的全表鎖,讀寫序列問題,併發效率鎖表,效率低myisam對於讀寫密集型應用一般是不會去選用的。
mysql 資料引擎
mysql中的資料用各種不同的技術儲存在檔案 或者記憶體 中。這些技術中的每一種技術都使用不同的儲存機制 索引技巧 鎖定水平並且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。這些不同的技術以及配套的相關功能在mysql中被稱作儲存引擎 ...
mysql資料庫引擎 mysql資料庫引擎
資料庫引擎是用於儲存 處理和保護資料的核心服務。利用資料庫引擎可控制訪問許可權並快速處理事務,從而滿足企業內大多數需要處理大量資料的應用程式的要求。使用資料庫引擎建立用於聯機事務處理或聯機分析處理資料的關聯式資料庫。這包括建立用於儲存資料的表和用於檢視 管理和保護資料安全的資料庫物件 如索引 檢視和...
mysql的資料引擎
一般來說,mysql有以下幾種引擎 isam myisam heap innodb和berkley bdb 注意 不同的版本支援的引擎是有差異的。當然啦,如果你感覺自己的確技術高超,你還能夠使用mysql 來建立自己的資料庫引擎,這個已經out of my knowledge,牛人可以參照mysql...