我有以下查询:
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秒为每个在线用户执行此查询怎么办?
答案 0 :(得分:0)
InnoDB不应该比MyIsam慢得多。尝试进行更多更新并获取查询所花费的平均时间。只有一个查询的时间不是精确的。
答案 1 :(得分:0)
关于我对MyISAM和InnoDB的了解:
MyISAM是一个不支持事务的引擎,不会对数据强制执行任何形式的引用完整性,也不允许使用事务(这使MyISAM能够非常快速地存储数据,但这取决于你保持参照完整性手动)。 InnoDB支持事务和参照完整性,但权衡的是它比MyISAM慢一点。
简单问题:
如果您之前的任何问题的答案都是肯定的,那么InnoDB就是您的最佳选择。