1. 程式人生 > >mysql那些事(5)建表存儲引擎的選擇

mysql那些事(5)建表存儲引擎的選擇

表鎖 inno 發展 完全 操作 lba 第三方 nod false

在mysql見表的時候,會遇到選擇存儲引擎:MyISAM和InnoDB。究竟用哪種存儲引擎好呢?

1、MyISAM:表鎖;支持全文索引;讀並發性能較好。

2、InnoDB:行鎖;支持事務,支持外鍵;寫並發性能較好。

實際上,現在大多數的公司裏,mysql的規定都是使用InnoDB作為默認存儲引擎,除了支持事務和行鎖是比較重要的兩個原因外,其實MyISAM在實際應用場景中意義也不大,並且一個重要原因是,官方支持力度大。oracle很早就收購了InnoDB,後面又收購了mysql,現在重點發展InnoDB引擎。

另外,MyISAM表鎖在並發寫操作多時會嚴重影響讀操作。

那InnoDB的在又是怎麽彌補讀並發和索引的問題呢?

索引現在不應該用mysql本身來解決,應該使用第三方的軟件,比如:ES,Sphinx;

至於讀表的性能,從架構和緩存等方面完全可以解決,並且技術解決方案非常成熟。

so,創建mysql數據表請毫不猶豫選擇:InnoDB。

mysql那些事(5)建表存儲引擎的選擇