この記事では、mysql に関する関連知識を提供します。主に過剰なメモリ使用量に関連する問題を整理し、Windows と CentOS7 の 2 つのシステムをそれぞれ使用してこの問題を解決します。一緒に、皆さんのお役に立てれば幸いです。
推奨学習: mysql ビデオ チュートリアル
一部の小ブルジョワジー プレーヤーにとって、サーバーの数はたとえば、私の個人サーバー構成は 2 コア 4G5M です。
4G メモリは Java プレーヤーにとって実際には大きくありません。いくつかのミドルウェアを開くと、独自のマイクロサービスが非常に混雑し、MySQL という大きな敵に対処する必要があります。私のローカル マシン上の MySQL は数 MB のメモリしか占有しません (私はあまり使用しませんが、ローカル マシン上の MySQL は確かに開いています):
そして、サーバーに必要な容量は 400M なので、スループットはあまり高くありません。ただの遊びです。メモリ使用量が多すぎます。 。 。
MySQLのメモリ使用量は設定を変更することで削減できることを知ったので試してみたので記録します。 2台のサーバーを同時に使用しており、1台はWindows Service 2016、もう1台はCentOS7をインストールしていますが、両方のサーバーの状況が似ているため、参考までに2つの記録を同時に作成します。
構成ファイルの既定の場所は C です。 \ProgramData\ MySQL\MySQL Server 8.0\my.ini に変更がある場合は、実際の状況に基づいて見つけてください。
設定ファイルのデフォルトのパスは、/etc/my.cnf です。変更されているため、実際の状況に応じて見つけることができます。
Windows では Ctrl F を使用して検索でき、Linux では「/key」を使用して検索できます。その方法については、Baidu を参照してください。
見つけて変更する必要があるものが 3 つあります:
table_setting_cache
を見つけて、400
official に変更しました。次のように解釈されます: 定義キャッシュに保存できる (.frm ファイルからの) テーブル定義の数。多数のテーブルを使用する場合は、大規模なテーブル定義キャッシュを作成して、テーブルを開く速度を向上させることができます。通常のテーブル キャッシュとは異なり、テーブル定義キャッシュは使用するスペースが少なく、ファイル記述子を使用しません。最小値とデフォルト値は両方とも 400 です。
table_open_cache
を見つけて、それを 256
MySQL がテーブルを開くたびに、一部のデータを table_open_cache キャッシュに読み込みます。 MySQL はこのキャッシュに対応する情報が見つからない場合、ディスクから読み取られます。
正式な説明は、すべてのスレッドで開いているテーブルの数です。この値を増やすと、mysqld に必要なファイル記述子の数が増加します。したがって、[mysqldsafe] セクションの変数「open fileslimit」で、開くことを許可されるファイルの数が少なくとも 4096 に設定されていることを確認する必要があります。
performance_schema
を見つけて off に変更します
これが見つからない場合は、適切な場所に performance_schema = off を直接追加します # ## それでおしまい。
/etc/init.d/mysqld restart コマンドを試してください。
推奨学習: mysql ビデオ チュートリアル
以上がMySQL がメモリを大量に消費する問題を解決する方法の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。