innodb和myisam

學習innodb和myisam兩個數據表引擎的不一樣。 數據庫

首先innodb採用b+tree數據結構myisam採用b-tree數據結構(不太理解)不要緊。
我所學習到的東西是,myisam\innodb都是採用文件索引,可是不一樣之處在於myisam索引與數據分離,innodb是和數據在相同文件。先說myisam索引查詢時會進行i/o操做因此索引創建太多會影響數據庫效率,索引文件中存放是磁盤中的地址。而innodb文件中存放的是索引和數據,主索引就是數據表的主鍵,因此innodb必須有主鍵,而數據表的全部輔助索引都引用主鍵,因此輔助索引搜索時要搜索兩次索引,首先檢索輔助索引得到主鍵,而後用主鍵到主索引中檢索得到記錄。因此主鍵索引必須是惟一和簡單的遞增字段。 數據結構

經過上面的介紹可得知:myisam只適用於小數據表,大的數據會引發屢次的i/o讀取索引文件致使效率極低。而innodb則能夠存儲大數據,由於索引在數據文件中。 學習

一些簡單的區別: 大數據

myisam           innodb 索引

不支持外鍵       支持 innodb

不支持事物       支持 效率

支持全文索引    不支持 搜索

表鎖定             行鎖定 引用

相關文章
相關標籤/搜索