【问题标题】:One simple INNODB INSERT is slowing whole web一个简单的 INNODB INSERT 正在减慢整个网络
【发布时间】:2015-05-13 18:23:12
【问题描述】:

您好,我主要使用MYISAM,但我只有一个INNODB 表 用于使用非常简单的PHP 函数存储ID。

我正在发送此查询:insert intosystem_id() VALUES() 并使用php函数mysql_insert_id();检索AUTOINCREMENT id

这就是我对 INNODB 所做的一切。

这个查询减慢了我的整个 WEB 应用程序,而且它一直在慢查询列表中。由于行锁定,这只是整个应用程序中的一个 INNODB 表......

能否请您指导我如何配置 mySQL INNODB 设置 config my.cf 只为这一个 INNODB 查询?

谢谢。

CREATE TABLE `system_id` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=6956889 DEFAULT CHARSET=utf8

【问题讨论】:

  • 你应该提供表 CREATE,我们目前对表的唯一了解是每个字段都有一个默认值(并且 id 字段是自动增量的)。
  • 感谢您的回复,创建表在这里:blindr.eu/info.txt,请不要混淆我刚刚将其转换为 myISAM,因为使用 myISAM 会顺利...
  • 存储 id 有什么用?这个使用频率如何?无论使用何种引擎,这都应该是最快的插入表之一。
  • 它每秒使用大约 10 次,如果它在 innodb 中,它的速度非常慢,并且会减慢整个应用程序的速度......我想知道如何编辑 my.cf 以为此正确设置 innodb 引擎表

标签: mysql performance innodb


【解决方案1】:

innodb_flush_log_at_trx_commit 默认为 1 以保证完整性。将其设置为 2 以提高速度。

为什么要使用单独的表来获取 ID?您不能在需要它的表中只保留AUTO_INCREMENT 吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多