Docker での MySQL メモリ使用量の削減
Dockerコンテナ、特にVPSなどの限られたリソース環境でMySQLメモリの使用を最適化します。 私は最近、MySQLを使用して複数のWordPressコンテナを実行するVPSのメモリ問題を解決しました。アイドル消費量は約500MBで、ここで説明した最適化から約150MBに減少しました。
このガイドは、メモリ消費を最小限に抑えるためにDockerにMySQLコンテナを構成する方法を示しています。 最適化されたファイルの例、ボリュームマッピングを備えたファイル、およびファイル許可命令が含まれていますmy.cnf
ステップ1:構成ファイルの作成docker-compose.yml
my.cnf
ステップ2:ファイル許可の設定 mysql-low-memory-my.cnf
ファイルを作成した後、他のプロセスまたはユーザーによる変更を回避します
<code>[mysqld] # Tamanho do buffer principal do InnoDB innodb_buffer_pool_size = 128M # Tamanho do buffer de chave (MyISAM) key_buffer_size = 8M # Número máximo de conexões simultâneas max_connections = 50 # Cache de threads thread_cache_size = 8 # Tamanho de tabelas temporárias em memória tmp_table_size = 16M max_heap_table_size = 16M # Desativa o Performance Schema performance_schema = 0 # Tamanho do buffer de log innodb_log_buffer_size = 4M # Cache de tabelas abertas table_open_cache = 200</code>
ステップ3:
の構成
mysql-low-memory-my.cnf
chmod 0444 mysql-low-memory-my.cnf
以下のコマンドを実行して、拘留されたモードでコンテナを起動します:docker-compose.yml
次のコマンドを使用して、コンテナメモリの使用を監視します。
docker-compose.yml
services: mysql: image: mysql:8 container_name: mysql-container environment: MYSQL_ROOT_PASSWORD: sua_senha volumes: - './mysql-low-memory-my.cnf:/etc/mysql/conf.d/mysql-low-memory-my.cnf' ports: - "3306:3306"
以上がDocker での MySQL メモリ使用量の削減の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

tosecurelyconnecttoaremotemysqlserver、usesshtunneling、configuremysqlforremoteacess、setfirewallrules、andconsidersslencryption .first、Encistishansshtunnelwithssh-l3307:localhost:3306user@remote-server-nandconnectviamysql-h127.0.0.1-p3307.second、editmys

MySQLDUMPは、MySQLデータベースの論理バックアップを実行するための一般的なツールです。データベースを再構築するための作成および挿入ステートメントを含むSQLファイルを生成します。 1.元のファイルをバックアップするのではなく、データベースの構造とコンテンツをポータブルSQLコマンドに変換します。 2。小さなデータベースや選択的回復に適しており、TBレベルのデータの迅速な回復には適していません。 3.一般的なオプションには、-single-Transaction、 - database、 - all-database、 - routinesなどが含まれます。 4. MySQLコマンドを使用して回復中にインポートし、外部キーチェックをオフにして速度を向上させることができます。 5.バックアップを定期的にテストし、圧縮と自動調整を使用することをお勧めします。

MySQLスロークエリログをオンにし、位置づけ可能なパフォーマンスの問題を分析します。 1.構成ファイルを編集するか、動的にSLOW_QUERY_LOGおよびLONG_QUERY_TIMEを設定します。 2。ログには、query_time、lock_time、rows_examinedなどの重要なフィールドが含まれており、効率のボトルネックの判断を支援します。 3. mysqldumpslowまたはpt-query-digestツールを使用して、ログを効率的に分析します。 4.最適化の提案には、インデックスの追加、Select*の回避、複雑なクエリの分割などが含まれます。たとえば、user_idにインデックスを追加すると、スキャンされた行の数を大幅に削減し、クエリ効率を改善できます。

mysqlでnull値を処理する場合、次の手に注意してください。1。テーブルを設計する場合、キーフィールドはnotnullに設定され、オプションのフィールドはnullを許可されます。 2。ISNULLまたはISNOTNULLは、=または!=;で使用する必要があります。 3. IFNULLまたはCoalesce関数を使用して、表示のデフォルト値を置き換えることができます。 4.挿入または更新時にnull値を直接使用する場合は注意し、データソースとORMフレームワークの処理方法に注意を払ってください。 nullは未知の値を表し、それ自体を含む値と等しくありません。したがって、テーブルをクエリ、カウント、および接続するときは、データや論理エラーの欠落を避けるときは注意してください。関数と制約の合理的な使用は、ヌルによる干渉を効果的に減らすことができます。

foreignkeysinmysqlensuredategritybyenforcingrelationshipsbetweentables.thepreventorphanedrecords、restrictinvaliddataentry、andcancascadechangesautomativitive.mustusetheetheintein nodbstorageine、およびforeidmatekolumnsmatchedtatepeofeofeofefe

MySQLのルートパスワードをリセットするには、次の手順に従ってください。1。mysqlサーバーを停止し、sudosystemctlstopmysqlまたはsudosystemctlstopmysqldを使用してください。 2。-skip-grant-tablesモードでmysqlを起動し、sudomysqld-skip-grant-tablesを実行します&; 3. mysqlにログインし、対応するsqlコマンドを実行して、flushprivilegesなどのバージョンに従ってパスワードを変更します。

MySQLデータベースとテーブルのサイズを表示するには、Information_schemaを直接照会するか、コマンドラインツールを使用できます。 1.データベースサイズ全体を確認します。SQLステートメントSelectTable_schemaas'Database '、sum(data_length index_length)/1024/1024as'size(mb)' frominformation_schema.tablesgroupbytable_schema;すべてのデータベースの合計サイズを取得するか、特定のデータベースを制限する条件を追加することができます。 2。単一のテーブルサイズを確認します:SelectTaを使用します

クロスプラットフォームの移行またはマルチパーソン開発の場合、文字セットとソートルールの問題は一般的になり、その結果、文字化けされたコードまたは一貫性のないクエリが発生します。 3つのコアソリューションがあります。最初に、データベース、テーブル、およびフィールドの文字セットをUTF8MB4にチェックして統合し、showCreateDatabase/テーブルを介して表示し、ALTERステートメントで変更します。次に、クライアントが接続するときにUTF8MB4文字セットを指定し、接続パラメーターに設定するか、SetNamesを実行します。第三に、ソートルールを合理的に選択し、UTF8MB4_UNICODE_CIを使用して比較と並べ替えの正確性を確保し、ライブラリとテーブルを構築するときに変更を介して指定または変更することをお勧めします。
