學習innodb和myisam兩個數據表引擎的不一樣。 數據庫
首先innodb採用b+tree數據結構myisam採用b-tree數據結構(不太理解)不要緊。
我所學習到的東西是,myisam\innodb都是採用文件索引,可是不一樣之處在於myisam索引與數據分離,innodb是和數據在相同文件。先說myisam索引查詢時會進行i/o操做因此索引創建太多會影響數據庫效率,索引文件中存放是磁盤中的地址。而innodb文件中存放的是索引和數據,主索引就是數據表的主鍵,因此innodb必須有主鍵,而數據表的全部輔助索引都引用主鍵,因此輔助索引搜索時要搜索兩次索引,首先檢索輔助索引得到主鍵,而後用主鍵到主索引中檢索得到記錄。因此主鍵索引必須是惟一和簡單的遞增字段。 數據結構
經過上面的介紹可得知:myisam只適用於小數據表,大的數據會引發屢次的i/o讀取索引文件致使效率極低。而innodb則能夠存儲大數據,由於索引在數據文件中。 學習
一些簡單的區別: 大數據
myisam innodb 索引
不支持外鍵 支持 innodb
不支持事物 支持 效率
支持全文索引 不支持 搜索
表鎖定 行鎖定 引用