【问题标题】:Difference between InnoDB and MyISAM? [duplicate]InnoDB 和 MyISAM 的区别? [复制]
【发布时间】:2011-08-26 17:40:28
【问题描述】:

可能重复:
MyISAM versus InnoDB

好的,我阅读了 Wikipedia 的此信息,InnoDB 似乎更好。这是我的问题,使用 InnoDB 而不是 MyISAM 从数据库中选择用户数据可以吗?或者为此留在 MyISAM 会更好。

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

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

【问题讨论】:

    标签: mysql innodb myisam


    【解决方案1】:
    • InnoDB 使用行锁定,MyISAM 使用 表锁定,因此...
    • InnoDB 在处理时速度较慢 选择
    • InnoDB 强制引用完整性 (这是非常好的事情)
    • InnoDB 允许事务

    【讨论】:

    • SELECT 语句不会导致行/表锁定,是吗?
    【解决方案2】:

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

    The MyISAM storage engine.

    The InnoDB storage engine.

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        InnoDB 与 MyISAM 在您编写选择语句的方式上没有任何区别。这将有助于允许外键,这将帮助您保持数据库中的引用完整性,并且如果设置正确,有助于确保不会创建孤立记录。

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

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

            【讨论】:

              猜你喜欢
              • 2012-09-18
              • 1970-01-01
              • 2013-03-18
              • 2014-10-14
              • 2012-05-15
              • 2011-07-25
              • 1970-01-01
              • 2012-03-01
              • 1970-01-01
              相关资源
              最近更新 更多