MYSQL 環境変数
次のコマンドを使用して、mysqld サーバーのデフォルトのバッファ サイズを取得できます:
shell>mysqld --help
このコマンドは、すべての mysqld オプションと構成可能な変数のテーブルを生成します。出力にはデフォルト値が含まれており、次のようになります:
オプション --set-variable (-O) に使用できる変数は次のとおりです:
back_log??????現在の値: 5
connect_timeout?現在の値: 5
layed_insert_timeout?現在の値: 300
layed_insert_limit?現在の値: 100 : 0
interactive_timeout? 現在の値: 28800
join_buffer_size? 現在の値: 131072
key_buffer_size??? 現在の値: 1048540
lower_case_table_names? 現在の値: 0
long_query_time??? 現在の値: 1048576
max_connections??? : 100
max_connect_errors?? 現在の値: 10
max_layed_threads? 現在の値: 20
max_heap_table_size? 現在の値: 16777216
max_join_size?? 現在の値: 4294967295
max_sort_length???値: 1024
max_tmp_tables?? 現在の値: 32 net_buffer_length ?? 現在の値: 16384
query_buffer_size?? 現在の値: 0
record_buffer?? 現在の値: 131072
sort_buffer?? ??? 現在の値: 2097116
table_cache?? 現在の値: 64
thread_concurrency?? 現在の値: 10
tmp_table_size???現在の値: 1048576
thread_stack ?????現在の値: 131072
wait_timeout????現在の値 : 28800
mysqld サーバーが実行されている場合は、次のコマンドを実行することで、実際に使用される変数の値を確認できます。 🎜>
shell>mysqladmin 変数
各オプションについては以下で説明します。バッファ サイズ、長さ、およびスタック サイズの値をバイト単位で指定する場合は、接尾辞「K」または「M」を使用して、値が K バイトまたはメガバイトで表示されることを示すことができます。たとえば、16M は 16 メガバイトを示します。接尾辞の大文字と小文字は関係ありません。16M と 16m は同じです。
コマンド SHOW STATUS を使用して、実行中のサーバーからの統計を確認することもできます。 「7.21 SHOW 構文(テーブルおよびカラム情報の取得)」を参照してください。
back_log
MySQL に必要な接続の数。これは、MySQL のメイン スレッドが短期間に多くの接続リクエストを受信し、メイン スレッドが接続を確認して新しいスレッドを開始するのに (短時間ではありますが) 時間がかかる場合に機能します。 back_log 値は、MySQL が一時的に新しいリクエストへの応答を停止するまでに、短期間にスタックに保存できるリクエストの数を示します。短期間に多数の接続が予想される場合にのみ、この値を増やす必要があります。つまり、この値は、受信 TCP/IP 接続のリスニング キューのサイズです。オペレーティング システムには、このキュー サイズに対する独自の制限があります。 Unix listen(2) システムコールのマニュアルページに詳細が記載されています。この変数の最大値を確認するには、OS のドキュメントを確認してください。 back_log をオペレーティング システムの制限よりも高く設定しようとしても、効果はありません。
connect_timeout
mysqld サーバーが Bad handshake で応答する前に接続メッセージを待機する秒数。
layed_insert_timeout
Insert DELAYED スレッドが終了するまでに Insert ステートメントを待機する時間。
layed_insert_limit
layed_insert_limit 行を挿入した後、Insert DELAYED プロセッサは、Select ステートメントが実行されていないことを確認します。その場合は、続行する前に許可ステートメントを実行してください。
layed_queue_size
挿入 DELAYED の処理に割り当てるキューの大きさ (行数)。キューがいっぱいの場合、Insert DELAYED を実行するクライアントは、キューが再び空になるまで待機します。
flush_time
これがゼロ以外の値に設定されている場合、flush_time 秒ごとにすべてのテーブルが閉じられます (リソースを解放してディスクに同期するため)。
interactive_timeout
サーバーが対話型接続を閉じる前に、対話型接続でのアクションを待機する秒数。インタラクティブクライアントは、mysql_real_connect() の CLIENT_INTERACTIVE オプションを使用してクライアントとして定義されます。 wait_timeout も表示されます。
join_buffer_size
すべての結合 (インデックス付き結合ではない) に使用されるバッファ サイズ。バッファーは、2 つのテーブル間の完全結合ごとにバッファーを割り当てます。インデックスを追加できない場合、この値を増やすと完全結合が高速化される可能性があります。 (多くの場合、結合を高速化するための最良の方法は、インデックスを増やすことです。)
key_buffer_size
インデックス ブロックはバッファリングされ、すべてのスレッドによって共有されます。 key_buffer_size はインデックス ブロックに使用されるバッファ サイズです。(すべての読み取りと複数の書き込みに対して) インデックスをより適切に処理できるように、許容できる範囲で増加させます。サイズを大きくしすぎると、システムがページングを開始し、速度が大幅に低下します。 MySQL は読み取りデータをキャッシュしないため、OS ファイル システム キャッシュ用のスペースを残しておく必要があることに注意してください。複数の行を書き込むときに速度を上げるには、LOCK TABLES を使用します。 「7.24 LOCK TABLES/UNLOCK TABLES 構文」を参照してください。
long_query_time
クエリにこれより長い時間がかかる場合 (秒単位)、Slow_queries カウンタが増加します。
max_allowed_packet
パケットの最大サイズ。メッセージ バッファは net_buffer_length バイトに初期化されますが、必要に応じて max_allowed_packet バイトまで増やすことができます。デフォルトでは、この値は小さすぎるため、大きな (エラーの可能性がある) パケットをキャプチャできません。大きな BLOB 列を使用している場合は、この値を増やす必要があります。使用する最大の BLOB と同じ大きさにする必要があります。
max_connections
許可される同時クライアントの数。この値を増やすと、mysqld に必要なファイル記述子の数が増加します。ファイル記述子の制限については、以下の注意を参照してください。 「18.2.4 接続数が多すぎるエラー」を参照してください。
max_connect_errors
ホストからの接続がこの数を超えて切断された場合、このホストはそれ以上の接続をブロックします。 FLUSH HOSTS コマンドを使用してホストのブロックを解除できます。
max_layed_threads
Insert DELAYED ステートメントを処理するために、この数を超えるスレッドを開始しないでください。すべての挿入 DELAYED スレッドが使用された後で新しいテーブルにデータを挿入しようとすると、DELAYED 属性が指定されていないかのように行が挿入されます。
max_join_size
max_join_size レコードを超えるレコードを読み取る可能性のある結合はエラーを返します。ユーザーが Where 句を持たず、時間がかかり、数百万行を返す結合を実行したい場合は、これを設定します。
max_sort_length
BLOB または TEXT 値をソートするときに使用されるバイト数 (各値の最初の max_sort_length バイトのみが使用され、残りは無視されます)。
max_tmp_tables
(このオプションはまだ何も行いません)。クライアントが同時に開いたままにできる一時テーブルの最大数。
net_buffer_length
通信バッファはクエリ間でこのサイズにリセットされます。通常、これは変更すべきではありませんが、メモリが少ない場合は、クエリで予期されるサイズに設定できます。 (つまり、クライアントが発行する SQL ステートメントの予想される長さ。ステートメントがこの長さを超える場合、バッファーは max_allowed_packet バイトまで自動的に拡張されます。)
record_buffer
順次スキャンを実行する各スレッドがそれをスキャンします 各テーブルこのサイズのバッファが割り当てられます。大量の連続スキャンを実行する場合は、この値を増やすことをお勧めします。
sort_buffer
ソートが必要な各スレッドは、このサイズのバッファを割り当てます。この値を増やすと、ORDER BY または GROUP BY 操作が高速化します。 「18.5 MySQL が一時ファイルを保存する場所」を参照してください。
table_cache
すべてのスレッドに対して開いているテーブルの数。この値を増やすと、mysqld に必要なファイル記述子の数が増加します。 MySQL では、開いている一意のテーブルごとに 2 つのファイル記述子が必要です。以下のファイル記述子の制限に関するコメントを参照してください。テーブル キャッシュの仕組みについては、「10.2.4 MySQL がテーブルをオープンおよびクローズする方法」を参照してください。
tmp_table_size
一時テーブルがこのサイズを超えると、MySQL は「テーブル tbl_name がいっぱいです」という形式のエラーを生成します。高度な GROUP BY クエリを多数実行する場合は、tmp_table_size の値を増やしてください。
thread_stack
各スレッドのスタック サイズ。 crash-me テストで検出される制限の多くは、この値に依存しています。デフォルトのチームは、一般的な操作には十分な規模です。 「10.8 独自のベンチマークの使用」を参照してください。
wait_timeout
サーバーが接続を閉じる前に、接続に対するアクションを待機する秒数。また、interactive_timeout も表示されます。
MySQL は非常にスケーラブルなアルゴリズムを使用しているため、通常は少ないメモリで実行することも、MySQL により多くのメモリを与えてパフォーマンスを向上させることもできます。
大量のメモリ、多数のテーブル、および適度な数のクライアントがあり、最大のパフォーマンスが必要な場合は、次のようなものにする必要があります。
shell> 16M -O table_cache=128
????-O sort_buffer=4M -O Record_buffer=1M &
メモリが少なく接続が多い場合は、次のようなものを使用します:
shell> ;safe_mysqld -O key_buffer=512k -O sort_buffer=100k
????-O Record_buffer=100k &
または:
shell>
?????-O table_cache=32 -O Record_buffer=8k -O net_buffer=1K &
接続数が多い場合、mysqld が接続ごとに設定されていない限り、「スワッピングの問題」が発生する可能性があります使用するメモリはほとんどありません。もちろん、すべての接続に十分なメモリがある場合は、mysqld のパフォーマンスが向上します。
mysqld のオプションを変更した場合、そのオプションは実際にはサーバーのそのインスタンスに対してのみ保持されることに注意してください。
パラメータ変更の影響を理解するには、次の手順を実行します:
shell>mysqld -O key_buffer=32m --help
--help オプションを確認してくださいが最後のものです。それ以外の場合、コマンド ラインでその後にリストされているオプションの効果は出力に反映されなくなります。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











MySQL クエリのパフォーマンスは、検索時間を線形の複雑さから対数の複雑さまで短縮するインデックスを構築することで最適化できます。 PreparedStatement を使用して SQL インジェクションを防止し、クエリのパフォーマンスを向上させます。クエリ結果を制限し、サーバーによって処理されるデータ量を削減します。適切な結合タイプの使用、インデックスの作成、サブクエリの使用の検討など、結合クエリを最適化します。クエリを分析してボトルネックを特定し、キャッシュを使用してデータベースの負荷を軽減し、オーバーヘッドを最小限に抑えます。

PHP で MySQL データベースをバックアップおよび復元するには、次の手順を実行します。 データベースをバックアップします。 mysqldump コマンドを使用して、データベースを SQL ファイルにダンプします。データベースの復元: mysql コマンドを使用して、SQL ファイルからデータベースを復元します。

MySQLテーブルにデータを挿入するにはどうすればよいですか?データベースに接続する: mysqli を使用してデータベースへの接続を確立します。 SQL クエリを準備します。挿入する列と値を指定する INSERT ステートメントを作成します。クエリの実行: query() メソッドを使用して挿入クエリを実行します。成功すると、確認メッセージが出力されます。

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

PHP で MySQL ストアド プロシージャを使用するには: PDO または MySQLi 拡張機能を使用して、MySQL データベースに接続します。ストアド プロシージャを呼び出すステートメントを準備します。ストアド プロシージャを実行します。結果セットを処理します (ストアド プロシージャが結果を返す場合)。データベース接続を閉じます。

PHP を使用して MySQL テーブルを作成するには、次の手順が必要です。 データベースに接続します。データベースが存在しない場合は作成します。データベースを選択します。テーブルを作成します。クエリを実行します。接続を閉じます。

Oracle データベースと MySQL はどちらもリレーショナル モデルに基づいたデータベースですが、Oracle は互換性、スケーラビリティ、データ型、セキュリティの点で優れており、MySQL は速度と柔軟性に重点を置いており、小規模から中規模のデータ セットに適しています。 ① Oracle は幅広いデータ型を提供し、② 高度なセキュリティ機能を提供し、③ エンタープライズレベルのアプリケーションに適しています。① MySQL は NoSQL データ型をサポートし、② セキュリティ対策が少なく、③ 小規模から中規模のアプリケーションに適しています。

7 月 23 日のこの Web サイトのニュースによると、ASUS は AMD EPYC 4004 シリーズ プロセッサを搭載したさまざまなサーバーおよびワークステーション レベルの製品を発売しました。このサイトからのメモ: AMD は 5 月に AM5 プラットフォームと Zen4 アーキテクチャの EPYC 4004 シリーズ プロセッサを発売し、最大 16 コアの 3DV キャッシュ仕様を提供しました。 ASUSProER100AB6 サーバー ASUSProER100AB6 は、EPYC Xiaolong 4004 シリーズプロセッサーを搭載した 1U ラックマウント型サーバー製品で、IDC および中小企業のニーズに適しています。 ASUSExpertCenterProET500AB6 ワークステーション ASUSExpertCenterProET500AB6 は、
