0

我有一个表,对服务器的每个请求都存储在它上面。
对于每个请求,我都会检查它是否被禁止。
例如它是一个查询:

select * from requests where request_sessID = '4bc0331d983000902b4718c80f12e9b3' AND request_time > (UNIX_TIMESTAMP() - 3600) AND request_isEnable = 1

我还将引擎从 InnoDB 设置为 MyISAM,将 row_format 设置为 Dynamic,但没有任何改变。
我的硬件非常强大,但执行大约需要一分钟!
我是 mysql 的程序员和新手
如何加速这个查询?
提前致谢

4

1 回答 1

1

你的表中有多少条目?数十亿?

我不认为你可以加快你的请求,但你需要在你的表中创建一个覆盖索引。

它可能如下所示,但是您需要先看一下理论,然后按正确的顺序编写字段(首先是可能性最大的字段,...)(上面的链接)

ALTER TABLE requests
  ADD INDEX (request_sessID, request_time, request_isEnable);
于 2012-10-21T10:57:07.427 回答