我对mysql的奇怪行为有疑问。 简单的更新查询,只有主键在表格中的where子句中,有大约3000行,有时需要超过2秒。根据{{1}}命令,它会在具有高Context_voluntary值(200+)的“查询结束”阶段停留。
在大多数情况下,它是连接中的第一个查询。
示例查询:
SHOW PROFILE ALL
创建表查询:
UPDATE `users`
set last_portal_login = NOW()
, ip = 1464635301
, browser = "chrome"
where uid = 2021
这是InnoDB配置:
CREATE TABLE
users
(
uid
int(10) unsigned NOT NULL,
login
char(50) COLLATE utf8_polish_ci NOT NULL,
hide_me
tinyint(1) unsigned NOT NULL DEFAULT '0',
addon
int(10) unsigned NOT NULL DEFAULT '0',
protocol
float unsigned NOT NULL DEFAULT '0',
mode
enum('firefox','lite','chrome','opera') COLLATE utf8_polish_ci DEFAULT NULL,
browser
enum('firefox','chrome','opera','ie','safari') COLLATE utf8_polish_ci DEFAULT NULL,
last_login
datetime DEFAULT NULL,
last_portal_login
datetime DEFAULT NULL,
ip
int(10) unsigned DEFAULT NULL,
PRIMARY KEY (uid
),
UNIQUE KEY login
(login
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci$$
users
Mysde版本:5.5.30来自dotdeb.org,连接基于unix socket。
我该怎么做才能解决这个问题?