MySQL - InnoDB与MyISAM

Ben*_*air 23 mysql

我昨天阅读了以下文章(http://blogs.sitepoint.com/2010/11/19/mysql-mistakes-php-developers/)并写了以下内容:

MySQL有许多数据库引擎,但你最有可能遇到MyISAM和InnoDB.

默认情况下使用MyISAM.但是,除非您创建一个非常简单或实验性的数据库,否则几乎肯定是错误的选择!MyISAM不支持对数据完整性至关重要的外键约束或事务.此外,无论何时插入或更新记录,整个表都会被锁定:随着使用量的增加,它会对性能产生不利影响.

解决方案很简单:使用InnoDB.

我一直使用MyISAM,因为它是默认的.你怎么看?

如果我要升级到InnoDB,在phpMyAdmin中,我可以编辑每个表并将其更改为innoDB,还是要执行更复杂的过程?

谢谢!

Ste*_*hen 30

是的,如果你愿意,你可以交换进出内衣等引擎,没有太多麻烦.只需在phpmyadmin中更改它.

但我不会为了改变它而改变它.你需要使用外键吗?更改.您是否需要行级锁定而不是表锁定?更改.

值得注意的是,使用MyISAM也有充分的理由.看看FULLTEXT索引.你不能用InnoDB做到这一点.

UPDATE

从MySQL 5.6开始,FULLTEXT也已经为InnoDB表实现了.这是手册.

  • 嗯,关于此事的意见如此之多.我想我将从MyISAM开始,因为我在过去的7年中从未遇到过使用它的问题:) (4认同)
  • 应该注意的是,MySQL 5.6以后的InnoDB支持全文搜索 (4认同)