1

クエリは次のように簡単です。

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ミリ秒かかります。

ここに画像の説明を入力してください

クエリを使用すると、スクリプトの実行に最大110ミリ秒かかります。

ここに画像の説明を入力してください

よろしく、Duluman Edi

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; 

これが私が実行時間を計算する方法であり、それはかなり正確で、決して失敗しませんでした。PS-現在Windowsでホストしているため、実際の実行時間は約15ミリ秒短くなります。

4

2 に答える 2

0

このUPDATEステートメントはかなりネストされているため、$(document).ready()でajax呼び出しを行って、ページの読み込み後にこの変更を行うことができると思います。

于 2012-06-09T10:58:33.253 に答える
0

あなたのidコラムがindex?であることを確認してください。またはprimary key...これにより、クエリの点灯が速くなります。

CREATE UNIQUE INDEX uid ON users
于 2015-03-06T14:09:36.257 に答える