mysql - MyISAM 与 InnoDB

我正在从事一个涉及大量数据库写入的项目,我会说(70% 的插入和 30% 的读取)。这个比率还包括我认为是一次读取和一次写入的更新。读取可能是脏的(例如,我在读取时不需要 100% 准确的信息)。
所讨论的任务将每小时执行超过 100 万个数据库事务。

我在网上阅读了很多关于 MyISAM 和 InnoDB 之间差异的资料,对于我将用于此任务的特定数据库/表,MyISAM 似乎是我显而易见的选择。从我似乎正在阅读的内容来看,如果需要事务,则 InnoDB 很好,因为支持行级锁定。

有人对这种类型的负载(或更高)有任何经验吗? MyISAM 是要走的路吗?

最佳答案

我有简短的 discussed这个问题放在一个表格中,这样你就可以断定是使用 InnoDB 还是 MyISAM

以下是您应该在哪种情况下使用哪种数据库存储引擎的简要概述:

                                                 MyISAM   InnoDB
----------------------------------------------------------------
Required full-text search                        Yes      5.6.4
----------------------------------------------------------------
Require transactions                                      Yes
----------------------------------------------------------------
Frequent select queries                          Yes      
----------------------------------------------------------------
Frequent insert, update, delete                           Yes
----------------------------------------------------------------
Row locking (multi processing on single table)            Yes
----------------------------------------------------------------
Relational base design                                    Yes

总结

  • 几乎在所有情况下,InnoDB 都是最好的方法
  • 但是,经常阅读,几乎没有写作,使用 MyISAM
  • 在 MySQL MyISAM

https://stackoverflow.com/questions/20148/

相关文章:

mysql - "INSERT IGNORE"与 "INSERT ... ON DUPLICATE

mysql - 如何为 MySQL 日期时间列设置默认值?

mysql - 如何获取 MySQL 数据库表的大小?

mysql - TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT 最大存储大小

mysql - 在 MySQL 中查找重复值

mysql - 如何在 MySQL 中找到所有具有特定列名的表?

mysql - 如何为 MySQL 中的多个列指定唯一约束?

sql - 加入与子查询

mysql - 检索每个组中的最后一条记录 - MySQL

mysql - 插入 MySQL 表或更新(如果存在)