いくつかの要因は、MySQLのパフォーマンスに影響を与えます
一般的には、以下の点
スローSQL(フォーカス)、ハードウェア・リソース(CPU、メモリ、ディスクI / Oなど)、LANトラフィックなどのホスト
-
超高QPSとTPS
QPS(クエリ1秒当たり毎秒扱わ照会):ニーズに10msを処理するSQLを仮定し、1秒は100まで対応します、そしてQPS <= 100、100ミリ秒でそれを扱う場合は?QPS <= 10は、SQL実行効率がチームをQPS影響を与えることが推測できることは非常に重要です。経験によると、
(3時のユーザへの秒あたりのトランザクション、ユーザートランザクション要求サーバを含むトランザクション/秒の数、内部サーバ処理、サーバ復帰情報)TPS
高QPSとTPS、高負荷アプリケーションを示しています。
TPSとQPSのためのMySQLデータベースとの計算方法
Questions = SHOW GLOBAL STATUS LIKE 'Questions'; Uptime = SHOW GLOBAL STATUS LIKE 'Uptime'; QPS=Questions/Uptime ----------------------- Com_commit = SHOW GLOBAL STATUS LIKE 'Com_commit'; Com_rollback = SHOW GLOBAL STATUS LIKE 'Com_rollback'; Uptime = SHOW GLOBAL STATUS LIKE 'Uptime'; TPS=(Com_commit + Com_rollback)/Uptime
-
高並行性と高いCPU使用率
高い同時実行 - >データベース接続プールのチャンスが大幅に増加(max_connectionsをデフォルト100)をアップに使用され、より多くの言葉よりも、あなたはサブクラス500のエラーが表示されます。
CPU使用率が高い - >応答が遅く、さらにはダウンタイムにつながります
-
ディスクI / O
ディスクI / Oのパフォーマンスが突然低下した - >を使用するより高速なディスクデバイス
実行時間>予測可能なピーク期間は、調整プログラムのタスク - 他には、ディスクのパフォーマンススケジュールされたタスクなどを大量に消費します
-
NICトラフィック
たとえば、私たちはしばしば、ギガビットイーサネット、ギガビットはここに実際に小さなB、1バイト= 8ビットであると言う。少し小さいBバイトビッグBを
1000MB / 8は、(我々が精通している帯域幅)100メガバイトにほぼ等しいです。
NICは、その後、確かにデータベースを訪問していない占領、そしてどのようにそれを避けるために、満たされたリスクの増大のですか?
一般的に言えば、
1.、スレーブノードの数を減らして重複の多くを避けるため、帯域幅の
DBにキャッシュ無効化要求の多数を避けるために、マルチレベル・キャッシュの2合理的な利用、
選択*を使用して3.避け、クエリ
など、ビジネスネットワークおよびネットワーク・サーバの3分離を
リスキーは、テーブルにもたらします
Shajiao大きなテーブル?参照だけのために、考慮すべき2次元からラフ定義、
- 1000万人以上を記録
- 10G以上の表の巨大なデータファイル
リスク
-
クエリへの影響
たとえば:超巨大なデータから、データ判別が高くないことがわかり、ディスクI / Oの多くにつながる、スロークエリの大多数で、その結果、データベースがハング死につながる可能性があり、特別な注意が解決される必要があります。
-
DDLの影響
インデックスは、特に時間がかかり、リスク:MySQLの5.5以前のバージョンでは、ロックテーブルをインデックス化されます。5.5以降のバージョンでは、ロック・テーブルを引き起こすことはありませんが、マスターからの遅延が発生しますが。
テーブル構造を変更し、それは長い時間ロックテーブルを取るリスク、1.遅延2.主からのデータの正常な動作に影響を与えます
どのようにそれを処理するには?
1.サブライブラリーサブテーブル(パーティションと統計の間でサブテーブルのクエリが解決する方法を選択する方法については、テーブルの主キーポイント、)慎重に!!!
(効率的にアーカイブする方法、タイミングの点をアーカイブ)アーカイブ2.履歴データ
リスクに大きな取引がもたらし
サービス:ACID
アトミックアトミック|一貫性の一貫性|分離、分離|永続的な耐久性