0

我有以下查询:

UPDATE `users` SET `time-spent-online` = `time-spent-online` + 10 WHERE `id` = 1

MyISAM 表执行哪个:

1 row affected. ( Query took 0.0008 sec )

对于InnoDB表执行:

1 row affected. ( Query took 0.0174 sec )

InnoDB 这么慢是正常的吗?我应该改用 MyISAM 吗?我害怕 MyISAM 的表锁定。如果我有 1000 个用户,并且每 10 秒为每个在线用户执行一次此查询会怎样?

4

2 回答 2

0

InnoDB 不应该比 MyIsam 慢很多。尝试进行更多更新并计算查询所用的平均时间。只有一个查询的时间不是那么准确。

于 2013-03-04T23:29:20.003 回答
0

关于我对 MyISAM 和 InnoDB 的了解:

MyISAM 是一个不支持事务的引擎,不对数据强制执行任何类型的参照完整性,也不允许使用事务(这使得 MyISAM 可以非常快速地存储数据,但由您决定是否保留参照完整性手工清洁)。InnoDB 确实支持事务和引用完整性,但代价是它(有点)比 MyISAM 慢。

简单的问题:

  1. 您需要参照完整性吗?
  2. 你需要使用交易吗?(回滚)

如果您对前面的任何问题的回答都是肯定的,那么 InnoDB 就是您要走的路。

于 2013-03-04T23:35:13.727 回答