私は熟練した DBA になるつもりはありませんが、MySQL を最適化するときは、いくつかの構成を調整するだけで最大 80% のパフォーマンス向上を実現できるという 80/20 ルールを信じています。特に、サーバーのリソースはますます安価になってきています。 警告する 1. 2 つのデータベースやアプリケーションがまったく同じであることはありません。ここでは、チューニングしているデータベースが「典型的な」Web サイトを提供しており、その優先事項は高速なクエリ、優れたユーザー エクスペリエンス、および大量のトラフィックの処理であると想定します。 2. サーバーを最適化する前に、データベースをバックアップしてください。 1. InnoDBストレージエンジンを使用する まだ MyISAM ストレージ エンジンを使用している場合は、InnoDB に切り替える時期です。 InnoDB が MyISAM よりも有利な理由はたくさんあります。パフォーマンスが気になる場合は、物理メモリの使用方法を見てみましょう。
結論: メモリに保存されたコンテンツは、ディスクに保存されたコンテンツよりも高速にアクセスできます。 テーブルのストレージ エンジンを切り替える方法は次のとおりです。 ALTER TABLE テーブル名 ENGINE=InnoDB; 注: 適切なインデックスはすべて作成しましたか?パフォーマンスを向上させるには、インデックスの作成を常に最優先にする必要があります。 2. InnoDBにすべてのメモリを使用させる my.cnf ファイルで MySQL 設定を編集できます。 innodb_buffer_pool_size パラメータを使用して、InnoDB がサーバー上で使用できる物理メモリの量を設定します。 これに関して一般的に受け入れられている「経験則」は (サーバーが MySQL のみを実行していると仮定して)、サーバーの物理メモリの 80% に設定することです。スワップ パーティションを使用せずにオペレーティング システムが正常に動作するのに十分なメモリがあることを確認した後、できるだけ多くの物理メモリを MySQL に割り当てます。 したがって、サーバーの物理メモリが 32 GB の場合、そのパラメータを最大 25 GB に設定できます。 innodb_buffer_pool_size = 25600M *注: (1) サーバーのメモリが小さく、1 GB未満の場合。この記事の方法を使用するには、サーバーをアップグレードする必要があります。 (2)サーバーのメモリ容量が200GBなどの大容量の場合、常識的に考えて、オペレーティングシステム用に最大40GBのメモリを予約する必要はありません。 * 3. InnoDBを複数のタスクで実行できるようにする サーバーのパラメータ 複数のバッファ プールを持つことの利点は次のとおりです。 複数のスレッドが同時にバッファ プールにアクセスすると、ボトルネックが発生する可能性があります。複数のバッファ プールを有効にすることで、この競合を最小限に抑えることができます。 バッファ プールの数に関する公式の推奨事項は次のとおりです。 最良の結果を得るには、innodb_buffer_pool_instances と innodb_buffer_pool_size の設定を考慮して、各インスタンスに少なくとも 1 GB のバッファー プールがあることを確認してください。 したがって、この例では、32 GB の物理メモリを搭載したサーバー上で、パラメータ innodb_buffer_pool_size は 25 GB に設定されています。適切な設定は25600M / 24 = 1.06 GBです。 innodb_buffer_pool_instances = 24 知らせ! my.cnf ファイルを変更した後、変更を有効にするには MySQL を再起動する必要があります。 sudo サービス mysql を再起動 これらのパラメータを最適化するにはより科学的な方法もありますが、これらのポイントは MySQL サーバーのパフォーマンスを向上させるための一般的なガイドラインとして適用できます。 要約する 上記は、私がご紹介した MySQL を最適化するための 3 つの簡単な調整です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: Linux環境でのActiveMQ導入方法の詳しい説明
>>: JS ネイティブ 2048 ゲーム ソース コード共有 (インターネットの最新情報)
XHTML タグとは何ですか? XHTML タグ要素は、XHTML ドキュメントの基本的なコンポーネ...
Raspberry Pi 3B に 64 ビット アプリケーション (64 ビット JDK など) ...
1. はじめにpt-query-digest は、MySQL のスロー クエリを分析するためのツール...
1. 事業背景マスク レイヤーを使用してユーザーの異常な操作を遮断する方法は、フロントエンドでよく使...
システムヘルプを表示help contents mysql> ヘルプコンテンツ; ヘルプ カテ...
[nslookup とは?] 】 nslookup コマンドは、Linux で非常によく使用されるネ...
この記事の例では、ネイティブJSカプセル化vueタブ切り替えの具体的なコードを参考までに共有していま...
nginx プロセス モデルでは、トラフィック統計、トラフィック制御、データ共有などのタスクを完了す...
序文MySQL と Oracle のキーワードはまったく同じではありません。Oracle データベー...
Docker コンテナに入った後、コンテナを終了すると、コンテナは Exited 状態に変わります。...
目次序文1. catコマンド: 2. moreコマンド: 3. lessコマンド: 4. headコ...
導入MySQL は、私たちが日常業務で使用する非常に一般的なデータベースです。MySQL は現在 O...
Node.js の人気に応えて、最近、いくつかのサーバー側機能を実装するために Node.js を使...
この記事では、参考までに、製品拡大鏡を実装するためのJavaScriptの具体的なコードを紹介します...
目次1. 需要1. 需要2. SDKパラメータ設定1. ディレクトリ構造3. コードの実装1. バッ...