0

皆さんがこのパフォーマンスについてどう思うかを確認したかっただけです...

私は Intel i7 ivybridge クワッド、16GB DDR3 RAM、サーバー/mysql ドライブ用の 7200RPM ドライブなどを持っています...

1000 レコードに対して簡単な更新を実行しました: $q2 = "UPDATE msg_inbox SET receivedtime='$epochTime' WHERE id='$id' LIMIT 1 ";

これのそれぞれが現在のforeachループに基づいて(返された各IDで)起動されることを認めます..しかし、この更新クエリをコメントアウトすると、ページは1000レコードすべてをロードするのに0.0300秒かかります..

しかし、更新クエリを使用すると、ページが完全に完了するまでに57秒かかります... PHPマイクロタイムを使用して確認しました。

これは正常で、期待どおりのパフォーマンスですか、それとも何か問題がありますか? (おそらく私のマシン)

よろしく

表情報: 定義:

CREATE TABLE `msg_inbox` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `sender` varchar(20) NOT NULL,
  `sender_name` varchar(100) NOT NULL,
  `receiver` varchar(20) NOT NULL,
  `receiver_name` varchar(20) NOT NULL,
  `msg` tinytext NOT NULL,
  `senttime` int(10) NOT NULL,
  `receivedtime` int(10) NOT NULL,
  `operator` varchar(20) NOT NULL,
  `device_name` varchar(50) NOT NULL,
  `msgtype` varchar(20) NOT NULL,
  `read_by` varchar(20) NOT NULL COMMENT 'marks a message to be read or unread with ID of who read it',
  `folder_id` int(11) DEFAULT '0',
  `owner` int(11) DEFAULT '0',
  `prefix` varchar(10) NOT NULL,
  `raw_gwdata` text,
  `stat` enum('normal','important','deleted') NOT NULL DEFAULT 'normal',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8528 DEFAULT CHARSET=latin1;

現在、テーブルには合計 7887 行あります。

4

2 に答える 2

1

id 列がインデックス化されていると推測しています... MySql接続制限を確認する必要があると思います. HERE .

あなたのマシンとクエリは問題なく、mysql / php の設定を注意深く確認する必要があると思います。

PS: 4 GB RAM のデュアル コアが 30 秒以内に 1000 回の挿入を実行するのを見たことがあります。

于 2013-05-09T10:32:13.280 に答える