InnoDB和MyISAM之间的区别?

时间:2011-05-16 20:11:24

标签: mysql innodb myisam

  

可能重复:
  MyISAM versus InnoDB

好的,我读过维基百科和InnoDB的这些信息似乎更好。这是我的问题是否可以使用InnoDB而不是MyISAM从数据库中选择用户数据?或者与MyISAM保持联系会更好。

如果我要改为Inno PDO是否仍然可以使用它和一些旧式查询?

$q = ("SELECT * ... );
$r = mysql_query($q);

6 个答案:

答案 0 :(得分:13)

  • InnoDB使用行锁定,MyISAM使用 表锁定,因此......
  • InnoDB的速度较慢 SELECT
  • InnoDB强制执行参照完整性 (这是非常好的事情)
  • InnoDB允许交易

答案 1 :(得分:3)

一般来说,如果我的表有更多更新/插入/删除语句然后选择语句或者我想要使用外键的关系数据库,我会使用InnoDB,如果不是我坚持使用MyISAM。如果你使用InnoDB,你将放弃select语句性能和执行全文搜索索引的能力。

The MyISAM storage engine

The InnoDB storage engine

答案 2 :(得分:1)

我很值得考虑你是否会主要使用SELECT查询或INSERT / UPDATE,因为InnoDB支持行级锁定(更适合插入/更新),但MyISAM使用表级锁定(如果你需要更快)使用只选择)。 See this from ref manual for more info

答案 3 :(得分:0)

InnoDB与MyISAM对您编写select语句的方式没有任何区别。它将有助于允许外键,这将有助于您在数据库中保持参照完整性,如果正确设置,帮助确保不创建孤立记录。

有关详细信息,请参阅http://en.wikipedia.org/wiki/Foreign_key

答案 4 :(得分:0)

innodb相对于myisam的最大优势是innodb支持事务/回滚。 myisam将提供更好的整体性能,因为它不会产生相同的开销。对于简单的用户表,您最好坚持使用myisam。

答案 5 :(得分:0)

使用InnoDB而不是MyISAM来选择用户数据是完全可以的。 PDO也将使用它,mysql_query和mysqli_query也是如此。它们与表格类型无关。

但请记住,在开始使用之前,您需要了解许多不同的配置。如果你是一名休闲开发者,我建议你继续使用MyISAM