mysql 在网站上运行良好,通过一些分析(通过 codeigniter),我注意到一些查询运行速度非常慢,需要超过 30 秒。95% 的时间是会话表,在某些情况下,它会慢慢地从另一个表中 SELECTS。
慢表是 innoDB 类型。
我不确定修复它的正确过程是什么。
我试过修理桌子,但这是我所能得到的。我真的不知道下一步该做什么。
有任何想法吗?
@Nico @Mark Byers
SELECT *
FROM `ast_sessions`
WHERE `session_id` = '636519144bc6194898fd5a1f9e5fbc1d'
AND `user_agent` = 'Mozilla/5.0 (Windows NT 6.1; WOW64)'
创建表:
CREATE TABLE `ast_sessions` (
`session_id` varchar(40) COLLATE utf8_bin NOT NULL DEFAULT '0',
`ip_address` varchar(16) COLLATE utf8_bin NOT NULL DEFAULT '0',
`user_agent` varchar(150) COLLATE utf8_bin NOT NULL,
`last_activity` int(10) unsigned NOT NULL DEFAULT '0',
`user_data` text COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`session_id`,`user_agent`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
解释选择:
+----+-------------+-------+------+---------------+------+---------+------+------+----- ------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+----- ------------------------------------------------+
| 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Impossible WHERE noticed after reading const tables |
+----+-------------+-------+------+---------------+------+---------+------+------+-----------------------------------------------------+
1 row in set (1 min 10.41 sec)