1

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)
4

0 回答 0