MySQL 查询需要时间来执行

标签 mysql time execution

查询就这么简单:

Eg 1: "UPDATE threads SET hits = hits+1 WHERE id = TID"
Eg 2: "UPDATE users SET last_activity = unix_timestamp() WHERE id = UID"

`users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
  `last_activity` int(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

`threads` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `hits` int(10) unsigned NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

让我们以这个查询为例:

mysql_query("UPDATE users SET last_activity = unix_timestamp() WHERE id = UID");

没有查询,脚本需要大约 30 毫秒来执行:

enter image description here

对于查询,脚本执行大约需要 110 毫秒:

enter image description here

最好的问候,杜鲁曼埃迪

LE: 生成执行时间的代码如下:

///this is placed above any code
$mtime = explode(' ',microtime()); 
$mtime = $mtime[1] + $mtime[0]; 
$tstart = $mtime;
.....
my game code is here
.....
$mtime = explode(' ',microtime());
echo lang('info','page_load').' '.number_format(($mtime[1] + $mtime[0]) -    $tstart,4,'.','')*1000; 

这就是我计算执行时间的方式,它非常准确,从未让我失望过。 附言- 实际执行时间大约低 15 毫秒,因为我目前在 Windows 上托管它。

最佳答案

我想我可以对 $(document).ready() 进行 ajax 调用以在页面加载后进行此更改,因为此 UPDATE 语句完全嵌套。

关于MySQL 查询需要时间来执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10960208/

相关文章:

mysql - 如何连接两个表但包含所有行,即使是空白或空?

datetime - Go中从1601-01-01开始计算time.Time

linux - 管道pyinstaller输出可能吗?

Mysql:用键对字符串进行异或

mysql - 基于 3 个条件选择 3 行的最佳 MySQL 索引和查询

MySQL Full Join 与Where 子句给出不正确的结果

java - (Java) 如何让数据库删除存储的值,直到该值已存储超过 5 次?

sql-server - 相同的查询,不同的执行计划

javascript - 为什么这个执行了两次?

javascript - 对 JS 中的执行上下文感到困惑