4

最近、私の Web サイトに問題があり、mysql の負荷が 800% に達し、ほとんどのクエリが "Sorting Result" セットで停止します。

問題は、私がテストを行ったことです。結果セットが 1 つの同じクエリで、並べ替えには 9.8 秒かかり、並べ替えなしでは 0.02 秒かかりました。クエリには、where 条件と group by が含まれています。

SQLは最適化され、検索はインデックス付きフィールドで行われ、数日前まではすべてうまくいきました. トラフィックの急増も、コードの変更も、何もありません。

過去にこの問題が発生したことがありますか、それともどうすれば修正できますか?

ありがとう

編集:クエリの説明:

           id: 1
  select_type: SIMPLE
        table: m
         type: range
possible_keys: posterid_to_idx,to,poster_id
          key: posterid_to_idx
      key_len: 8
          ref: NULL
         rows: 6
        Extra: Using where; Using filesort

繰り返しますが、同じクエリは数日前にうまくいきました。

  `id` int(11) NOT NULL AUTO_INCREMENT,
  `body` longtext NOT NULL,
  `poster_id` int(11) NOT NULL,
  `poster_name` varchar(50) NOT NULL,
  `to` int(11) NOT NULL,
  `added` int(11) NOT NULL,
  `picture` varchar(64) NOT NULL,
  `folder` int(11) DEFAULT NULL,
  `read` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `posterid_to_idx` (`poster_id`,`to`),
  KEY `to` (`to`),
  KEY `poster_id` (`poster_id`),
  KEY `msg` (`id`,`poster_id`,`to`),
  KEY `added` (`added`)
) ENGINE=InnoDB AUTO_INCREMENT=37548617 DEFAULT CHARSET=latin1

    SELECT SQL_CALC_FOUND_ROWS m.body, m.id,  m.poster_id, m.poster_name, m.to, m.added, m.picture, m.folder
FROM messages m
WHERE  ((m.poster_id = '1885585' OR m.poster_id = '1886341') 
      AND (m.to = '1886341' OR m.to = '1885585'))                 
ORDER BY m.id DESC                 LIMIT 0, 10

トップ出力:

CPU:  6.0% user,  0.0% nice, 38.8% system,  0.2% interrupt, 55.0% idle
Mem: 11G Active, 1400M Inact, 5451M Wired, 87M Cache, 4923M Buf, 29G Free
Swap: 8000M Total, 8000M Free
4

1 に答える 1

1

そのため、my.cnf を何度も試した後、次の方法で問題を修正しました。

  1. クエリ キャッシュ値の減少

  2. キー バッファ値の減少

  3. tmp テーブル値の減少

  4. 無効化されたパフォーマンス スキーマ

さまざまな構成をテストしたところ、完全なトラフィック (約 6,000 人がオンライン) で mysql が 50% の負荷を維持していることがわかります。SQL や変更は行われず、innodb の微調整のみが行われました。

これが同じ問題を抱えている人の答えかどうかはよくわかりませんが、少なくとも私の答えです。

My.cnf

query_cache_limit=128M
query_cache_size=128M
query_cache_type=1
key_buffer_size=128M
tmp_table_size=64M
performance_schema=off
于 2013-07-18T19:47:13.397 に答える