关于mysql:InnoDB和MyISAM之间的区别?

Difference between InnoDB and MyISAM?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
MyISAM versus InnoDB

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

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

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

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


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

MyISAM存储引擎。

InnoDB存储引擎。


我很值得考虑你是否会主要使用SELECT查询或INSERT / UPDATE,因为InnoDB支持行级锁定(更适合插入/更新),但MyISAM使用表级锁定(如果你只使用select,会更快) )。有关详细信息,请参阅参考手册。


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

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


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


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

有关更多信息,请参见http://en.wikipedia.org/wiki/Foreign_key。