検索
ホームページデータベースmysql チュートリアルMySQL - 新しくインストールされた MySQL に合わせて調整する必要がある 10 の構成の詳細な紹介

新しくインストールされた mysql サービスについてまだ心配していて、どのデフォルト設定を変更すればよいかわかりませんか? mysql には 100 以上の調整可能なパラメータがあります。すぐに調整する必要があるパラメータはどれですか?私たちは、MySQL の最適化のために調整する必要がある 10 の構成を学習しました。これらの方法を使用すると、必要な場合は次の情報を参照して、堅牢な MySQL 構成を取得できます。 MySQL の構成を確認して、改善のための提案をいくつか挙げてみましょう。何百もの構成オプションがあるにもかかわらず、少数の設定だけを変更することを提案すると、多くの人が驚きます。この記事の目的は、構成項目の非常に重要なリストを提供することです。数年前にこのような提案をブログで行いましたが、MySQL の世界の変化は速すぎます

...

経験豊富な人でも間違いを犯すことがあります。多くの人が発生し、多くの迷惑がかかることになります。したがって、これらの推奨事項を盲目的に適用する前に、次の点に注意してください:

一度に 1 つの設定のみを変更してください。これが、変更が有益かどうかをテストする唯一の方法です。

ほとんどの構成は、SET GLOBAL を使用して実行時に変更できます。これは、何か問題が発生した場合に変更をすぐに元に戻すのに非常に便利な方法です。ただし、これを永続的にするには、構成ファイルを変更する必要があります。

MySQL を再起動しても効果のない変更を加えましたか?設定を正しい領域に配置していることを確認してください (この記事で説明されているすべての設定は [MySQLD] に属します)

設定を変更した後はサーバーを開くことができません: 正しいユニットを使用していることを確認してください。

innodb_buffer_pool_size の単位は MB で、max_connection にはユニット。

構成ファイル内に重複した構成項目を含めないでください。変更を追跡したい場合は、バージョン管理を使用してください。

「サーバーのメモリが以前の 2 倍になったので、すべての値を前の値の 2 倍に変更する必要がある」などの単純な計算方法は使用しないでください。

1.基本設定

以下の3つの設定項目を頻繁に確認する必要があります。そうしないと、すぐに問題が発生する可能性があります。

innodb_buffer_pool_size:

これは、InnoDB のインストール後に設定する必要がある最初のオプションです。

バッファ プールはデータとインデックスがキャッシュされる場所です。値が大きいほど、ほとんどの読み取り操作でハードディスクの代わりにメモリが使用されます。一般的な値は 5 ~ 6GB (8GB メモリ)、20 ~ 25GB (32GB メモリ)、100 ~ 120GB (128GB メモリ) です。

innodb_log_file_size:

これは REDO ログのサイズです。 REDO ログは、書き込み操作が高速かつ信頼性が高く、クラッシュから回復できることを保証するために使用されます。

MySQL 5.1 までは、パフォーマンスを向上させるためにサイズを大きくしたい一方で、クラッシュ後の回復を早めるためにサイズを小さくしたいと考えていたため、チューニングが困難でした。幸いなことに、MySQL 5.5 以降、クラッシュ リカバリのパフォーマンスが大幅に向上したため、高い書き込みパフォーマンスとクラッシュ リカバリのパフォーマンスを同時に実現できます。 MySQL 5.5 までは、REDO ログの合計サイズは 4 GB に制限されていました (デフォルトでは 2 つのログ ファイルが存在できます)。これは MySQL 5.6 で改善されました。

innodb_log_file_size を最初から 512M に設定します (つまり、1GB の REDO ログが存在します)。これにより、書き込み操作に十分なスペースが確保されます。アプリケーションで頻繁にデータを書き込む必要があり、MySQL 5.6 を使用している場合は、最初から 4G に設定できます。

max_connections:

「接続が多すぎます」エラーが頻繁に表示される場合は、max_connections の値が低すぎることが原因です。これは、アプリケーションがデータベース接続を適切に閉じず、デフォルトの 151 接続よりも高い値が必要なため、非常に一般的です。 max_connection 値が高く設定されている場合 (1000 以上など) の主な欠点は、1000 以上のアクティブなトランザクションを実行するとサーバーが応答しなくなることです。アプリケーションで接続プーリングを使用するか、MySQL でプロセス プーリングを使用すると、この問題の解決に役立ちます。

2. InnoDB 構成

MySQL 5.5 バージョン以降、InnoDB はデフォルトのストレージ エンジンであり、他のストレージ エンジンよりもはるかに多く使用されます。そのため、慎重に構成する必要があります。

innodb_file_per_table:

この設定は、すべてのテーブルのデータとインデックスを共有テーブルスペースに保存する必要があるか (innodb_file_per_table = OFF)、各テーブルのデータを個別の .ibd ファイルに配置する必要があるか (innodb_file_per_table =の上)。テーブルごとに 1 つのファイルを使用すると、テーブルの削除、切り捨て、または再構築時にディスク領域を再利用できます。これは、データ圧縮などの一部の高度な機能にも必要です。しかし、それによってパフォーマンスが向上することはありません。テーブルごとに 1 つのファイルを必要としない主なシナリオは、非常に多数のテーブル (10k 以上など) がある場合です。 🎜

MySQL 5.6 では、このプロパティのデフォルト値は ON なので、ほとんどの場合、何もする必要はありません。以前のバージョンでは、新しく作成されたテーブルのみに影響するため、データをロードする前にこのプロパティを ON に設定する必要がありました。

innodb_flush_log_at_trx_commit:

デフォルト値は 1 で、InnoDB が ACID 機能を完全にサポートしていることを示します。この値は、マスター ノードなどのデータ セキュリティが主な関心事である場合に最も適切です。ただし、ディスク (読み取りおよび書き込み) 速度が遅いシステムの場合、REDO ログへの変更をフラッシュするたびに追加の fsync が必要になるため、大きなオーバーヘッドが発生します。この値を 2 に設定すると、送信されたトランザクションは 1 秒に 1 回だけ REDO ログにフラッシュされるため、信頼性が低くなりますが、プライマリ ノードのバックアップ ノードなど、一部のシナリオでは許容されます。 。 の。値 0 は高速ですが、システムクラッシュが発生した場合にデータが失われる可能性があります。バックアップ ノードにのみ適用されます。

innodb_flush_method:

この構成は、データとログがハードディスクに書き込まれる方法を決定します。一般に、ハードウェア RAID コントローラがあり、その独立したキャッシュがライトバック メカニズムを使用し、バッテリ電源障害保護機能を備えている場合は、O_DIRECT として設定する必要があります。そうでない場合は、ほとんどの場合、fdatasync (デフォルト値) に設定する必要があります。 sysbench は、こ​​のオプションを決定するのに役立つ優れたツールです。

innodb_log_buffer_size:

この設定は、まだ実行されていないトランザクションに割り当てられるバッファを決定します。通常はデフォルト値 (1MB) で十分ですが、トランザクションに大きなバイナリ オブジェクトまたは大きなテキスト フィールドが含まれている場合、このキャッシュはすぐにいっぱいになり、追加の I/O 操作がトリガーされます。 Innodb_log_waits ステータス変数を確認し、0 でない場合は、innodb_log_buffer_size を増やします。

3. その他の設定

query_cache_size:

クエリ キャッシュ (クエリ キャッシュ) は、同時実行性がそれほど高くない場合でもよく知られているボトルネックです。

最良のオプションは、最初からこれを無効にし、query_cache_size = 0 (MySQL 5.6 のデフォルト) に設定し、他の方法を使用してクエリを高速化することです: インデックスを最適化する、負荷を分散するためにコピーを追加する、または追加のキャッシュを有効にする (たとえば、 memcache または redis として)。アプリケーションのクエリ キャッシュを有効にしていて、何も問題が発生していない場合は、クエリ キャッシュが役立つ可能性があります。無効にしたい場合は注意が必要です。

log_bin:

データベースサーバーをマスターノードのバックアップノードとして機能させたい場合は、バイナリログを有効にすることが必須です。これを行う場合は、server_id を一意の値に設定することを忘れないでください。サーバーが 1 台だけの場合でも、これ (バイナリ ログを有効にする) は、ポイントインタイム データのリカバリを実行する場合に役立ちます。最新のバックアップ (完全バックアップ) から復元し、バイナリ ログの変更を適用します (増分バックアップ)。 。バイナリ ログは作成されると永久に保存されます。したがって、ディスク容量を使い果たしたくない場合は、PURGE BINARY LOGS を使用して古いファイルを削除するか、expire_logs_days を設定してログが自動的に削除されるまでの日数を指定できます。

バイナリ ログのログ作成にはオーバーヘッドが発生するため、プライマリ ノードではないレプリカ ノードで必要ない場合は、このオプションをオフにすることをお勧めします。

skip_name_resolve:

クライアントがデータベースサーバーに接続すると、サーバーはホスト名解決を行います。DNS が遅い場合、接続の確立も遅くなります。したがって、DNS ルックアップを行わずにサーバーを起動する場合は、skip_name_resolve オプションをオフにすることをお勧めします。唯一の制限は、後で GRANT ステートメントで使用できるのは IP アドレスのみであるため、この設定を既存のシステムに追加する場合は注意が必要です。

概要

もちろん、負荷やハードウェアに応じて、他の設定も影響する可能性があります。遅いメモリと速いディスク、高い同時実行性、および書き込み集中型の負荷の場合には、特別なチューニングが必要になります。ただし、ここでの目標は、重要でない MySQL 設定を調整したり、ドキュメントを読んでどの設定が重要であるかを調べることにあまり時間を費やすことなく、堅牢な MySQL 構成を迅速に取得できるようにすることです。


以上がMySQL - 新しくインストールされた MySQL に合わせて調整する必要がある 10 の構成の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQL:初心者が習得するための必須スキルMySQL:初心者が習得するための必須スキルApr 18, 2025 am 12:24 AM

MySQLは、初心者がデータベーススキルを学ぶのに適しています。 1.MySQLサーバーとクライアントツールをインストールします。 2。selectなどの基本的なSQLクエリを理解します。 3。マスターデータ操作:テーブルを作成し、データを挿入、更新、削除します。 4.高度なスキルを学ぶ:サブクエリとウィンドウの関数。 5。デバッグと最適化:構文を確認し、インデックスを使用し、選択*を避け、制限を使用します。

MySQL:構造化データとリレーショナルデータベースMySQL:構造化データとリレーショナルデータベースApr 18, 2025 am 12:22 AM

MySQLは、テーブル構造とSQLクエリを介して構造化されたデータを効率的に管理し、外部キーを介してテーブル間関係を実装します。 1.テーブルを作成するときにデータ形式と入力を定義します。 2。外部キーを使用して、テーブル間の関係を確立します。 3。インデックス作成とクエリの最適化により、パフォーマンスを改善します。 4.データベースを定期的にバックアップおよび監視して、データのセキュリティとパフォーマンスの最適化を確保します。

MySQL:説明されている主要な機能と機能MySQL:説明されている主要な機能と機能Apr 18, 2025 am 12:17 AM

MySQLは、Web開発で広く使用されているオープンソースリレーショナルデータベース管理システムです。その重要な機能には、次のものが含まれます。1。さまざまなシナリオに適したInnodbやMyisamなどの複数のストレージエンジンをサポートします。 2。ロードバランスとデータバックアップを容易にするために、マスタースレーブレプリケーション機能を提供します。 3.クエリの最適化とインデックスの使用により、クエリ効率を改善します。

SQLの目的:MySQLデータベースとの対話SQLの目的:MySQLデータベースとの対話Apr 18, 2025 am 12:12 AM

SQLは、MySQLデータベースと対話して、データの追加、削除、変更、検査、データベース設計を実現するために使用されます。 1)SQLは、ステートメントの選択、挿入、更新、削除を介してデータ操作を実行します。 2)データベースの設計と管理に作成、変更、ドロップステートメントを使用します。 3)複雑なクエリとデータ分析は、ビジネス上の意思決定効率を改善するためにSQLを通じて実装されます。

初心者向けのMySQL:データベース管理を開始します初心者向けのMySQL:データベース管理を開始しますApr 18, 2025 am 12:10 AM

MySQLの基本操作には、データベース、テーブルの作成、およびSQLを使用してデータのCRUD操作を実行することが含まれます。 1.データベースの作成:createdatabasemy_first_db; 2。テーブルの作成:createTableBooks(idintauto_incrementprimarykey、titlevarchary(100)notnull、authorvarchar(100)notnull、published_yearint); 3.データの挿入:InsertIntoBooks(タイトル、著者、公開_year)VA

MySQLの役割:WebアプリケーションのデータベースMySQLの役割:WebアプリケーションのデータベースApr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQL:最初のデータベースを構築しますMySQL:最初のデータベースを構築しますApr 17, 2025 am 12:22 AM

MySQLデータベースを構築する手順には次のものがあります。1。データベースとテーブルの作成、2。データの挿入、および3。クエリを実行します。まず、createdAtabaseおよびcreateTableステートメントを使用してデータベースとテーブルを作成し、InsertINTOステートメントを使用してデータを挿入し、最後にSelectステートメントを使用してデータを照会します。

MySQL:データストレージに対する初心者向けのアプローチMySQL:データストレージに対する初心者向けのアプローチApr 17, 2025 am 12:21 AM

MySQLは、使いやすく強力であるため、初心者に適しています。 1.MYSQLはリレーショナルデータベースであり、CRUD操作にSQLを使用します。 2。インストールは簡単で、ルートユーザーのパスワードを構成する必要があります。 3.挿入、更新、削除、および選択してデータ操作を実行します。 4. Orderby、Where and Joinは複雑なクエリに使用できます。 5.デバッグでは、構文をチェックし、説明を使用してクエリを分析する必要があります。 6.最適化の提案には、インデックスの使用、適切なデータ型の選択、優れたプログラミング習慣が含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。