【问题标题】:InnoDB strange performancesInnoDB 奇怪的表现
【发布时间】:2011-08-13 20:18:48
【问题描述】:

我正在使用具有以下结构的非常简单的 InnoDB 表(名为 Test)进行一些测试:

Id int(10) unsigned NOT NULL AUTO_INCREMENT
UserId int(10) NOT NULL
Body varchar(512) COLLATE utf8_unicode_ci NOT NULL
CreatedAt datetime NOT NULL

UserId 上的一个附加索引:

KEY Idx_Test_UserId (UserId) USING BTREE

当我尝试执行这个查询时...

INSERT INTO Comments (UserId,Body,CreatedAt) VALUES (1,'This is a test',NOW());

...有时我会在几毫秒内完成操作,但有时需要大约一秒钟。

我是唯一一个在这个特定表上做测试的人,我真的不明白我有这样的执行时间差异。

最后一点,当我使用 MyISAM 表进行相同的测试时,我没有任何问题。

【问题讨论】:

  • 您的操作系统和 MySQL 版本是什么?
  • 我的操作系统是 Window 7 和 MySQL v5.5
  • 属于serverfault.com系统管理员和桌面支持专业人员的问答

标签: mysql innodb


【解决方案1】:

InnoDB 默认在 AUTOCOMMIT 模式下工作,这意味着每次插入都需要两次单独的写入磁盘操作。如果您的机器中只有一个磁盘驱动器,有时您可能需要稍等片刻。此外,AFAIR InnoDB 曾经(不确定是否仍然如此)在 Windows 中写入磁盘时存在一些性能问题,但我认为它涉及的并发性高于 1。

【讨论】:

  • 我没有提到的是,即使使用简单的 SELECT 语句,也会出现执行时间问题......
猜你喜欢
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-24
  • 2010-11-18
  • 1970-01-01
相关资源
最近更新 更多