在mysql见表的时候,会遇到选择存储引擎:MyISAM和InnoDB。究竟用哪种存储引擎好呢?
1、MyISAM:表锁;支持全文索引;读并发性能较好。
2、InnoDB:行锁;支持事务,支持外键;写并发性能较好。
实际上,现在大多数的公司里,mysql的规定都是使用InnoDB作为默认存储引擎,除了支持事务和行锁是比较重要的两个原因外,其实MyISAM在实际应用场景中意义也不大,并且一个重要原因是,官方支持力度大。oracle很早就收购了InnoDB,后面又收购了mysql,现在重点发展InnoDB引擎。
另外,MyISAM表锁在并发写操作多时会严重影响读操作。
那InnoDB的在又是怎么弥补读并发和索引的问题呢?
索引现在不应该用mysql本身来解决,应该使用第三方的软件,比如:ES,Sphinx;
至于读表的性能,从架构和缓存等方面完全可以解决,并且技术解决方案非常成熟。
so,创建mysql数据表请毫不犹豫选择:InnoDB。