騰訊面試說起php
參考來源:http://database.51cto.com/art/201011/234306.htmmysql
MySQL實際上支持五種不一樣的表類型.這五種類型分別是BDB、HEAP、ISAM、MERGE以及MyISAM。其中BDB類型單獨屬於一類,稱爲「事務安全型」(transaction-safe),其他的表類型屬於第二類,稱爲「非事務安全型」(non-transaction-safe)。 面試
1,ISAM數據表
mysql3.23版本以前的MySQL支特的惟一一種表類型,目前己通過時,MyIASM處理程庫逐步取代了ISAM處理程序,這種老式的表 類型己經沒有人在用了數據表在硬盤上的文件存儲方式:IASM Frm isd ismsql
2,MyIASM數據表
這是目前中MySQL默認使用的數據表類型。其優勢是
數據庫
數據表在硬盤上的文件存儲方式:MyISAM Frm myd myi安全
3,Merge數據表 服務器
這是一種把相同結構的MyIASM數據表組織爲一個邏輯單元的方法多線程
數據表在硬盤上的文件存儲方式:Merge Frm mrg架構
4,HEAP數據表
這是一種使用內存的數據表,並且各個數據行的長度固定,這兩個特性使得這種類型數據表的檢索速度很是快,做爲一種臨時性的數據表,HEAP在某些特定狀況下頗有用。併發
數據表在硬盤上的文件存儲方式:Heap Frm
5,BDB數據表
這種數據表支持事務處理機制,具備良好的併發性能
數據表在硬盤上的文件存儲方式:BDB Frm db
6,InnoDB數據表
這是最近加入MySQL的數據表類型,有許多新的特性
支持事務處理機制
崩潰後可以馬上恢復
支持外鍵功能,包括級聯刪除
具備併發功能
數據表在硬盤上的文件存儲方式:InnoDB frm
參考來源:http://www.nowamagic.net/database/db_TypeOfTable.php
同Oracle 和SQL Server等大型數據庫系統同樣,MySql也是客戶/服務器系統而且是單進程多線程架構的數據庫。
MySql區別於其它數據庫系統的一個重要特色是支持插入式存儲引擎。
存儲引擎說白了就是如何存儲數據、如何爲存儲的數據創建索引和如何更新、查詢數據等技術的實現方法。由於在關係數據庫中數據的存儲是以表的形式存儲的,因此存儲引擎也能夠稱爲表類型(即存儲和操做此表的類型)。
在Oracle 和SQL Server等數據庫中只有一種存儲引擎,全部數據存儲管理機制都是同樣的。而MySql數據庫提供了多種存儲引擎。用戶能夠根據不一樣的需求爲數據表選擇不一樣的存儲引擎,用戶也能夠根據本身的須要編寫本身的存儲引擎。
MySql中有哪些存儲引擎?
靜態MyISAM:若是數據表中的各數據列的長度都是預先固定好的,服務器將自動選擇這種表類型。由於數據表中每一條記錄所佔用的空間都是同樣的,因此這種表存取和更新的效率很是高。當數據受損時,恢復工做也比較容易作。
固然MySql支持的表類型不止上面幾種。下面咱們介紹一下如何查看和設置數據表類型。