MySQLの5.5の詳細なパラメータ

[mysqlの]
デフォルトの文字セット= UTF8

[mysqldを】

DATADIR =の/ var / libに/ MySQLの
ソケット=の/ var / libに/ mysqlの/にmysql.sock

シンボリックリンクを無効にする#はリスク各種セキュリティを防ぐために推奨される
シンボリックリンクを= 0
#設定にsystemdが使用されている場合、ユーザーおよびグループは無視されます。
あなたが別のユーザーまたはグループの下でmysqldを実行する必要がある場合は#、
はに従ってmariadbのためのあなたにsystemdユニットファイルをカスタマイズ
http://fedoraproject.org/wiki/Systemdで#命令

バインドアドレス= 0.0.0.0
ポート= 3306

init_connect = 'SETのcollat​​ion_connectionの= utf8_unicode_ci内'
init_connect = 'SET NAMES UTF8の'
文字セットクライアント= UTF8の
文字セットサーバ= UTF8の
照合サーバ= utf8_unicode_ci内


サーバID = 1つの#は、機械1の数は、マスターの一般的な意味であることを示し

解決名-スキップ
#MySQLのは、このオプションを使用し、外部のDNS解決を接続するために禁止されているMySQLのDNS解決時間がなくなります。このオプションは、オンになっている場合は、しかし、注意してください
#は、許可されたすべてのリモートホスト接続には、IPアドレスモードを使用する必要があり、またはMySQLは、通常の接続要求を処理できません

#スキップネットワーキング

= 600 back_log
することができますいくつかの接続用のMySQLの#番号。非常に短い期間での場合は、メインのMySQLスレッド役割を果たしている接続要求の多くは、
#メインスレッドは、接続を確認して、新しいスレッドを開始する(非常に短いが)いくつかの時間を費やします。back_log値は、MySQLの前に短い時間で瞬間的に新しい要求に答えることは、スタックの存在かもしれ停止してどのように多くの要求を示しています。
#あなたが短期間に多くの接続を持っていることが予想される場合、あなたはそれを増やす必要があります。MySQLの接続データがMAX_CONNECTIONSに達した場合は、他の言葉では、新しい要求は、スタックの存在になります
back_log以上の接続を待っているの数が、ない場合は、リソースの解放に接続するための#待ち、back_logあるスタックの数彼は、接続リソースを受賞しました。
また#着信TCP / IP接続がキューを聞くために、この値(back_log)は、ご使用のオペレーティング・システムのサイズを制限しました。
お使いのオペレーティングシステムは、独自の制限があります。#(あなたはこの変数の最大値を見つけるためにあなたのOSのマニュアルを確認することができます)、このキューのサイズが無効になり、オペレーティングシステムの制限値よりも高いback_log設定しようとしました。

= 1000 MAX_CONNECTIONSが
同時大きい量が、並列接続数を増やすために、この値を大きくすることが推奨されている場合、マシンがサポートされている場合にのみ、#接続のMySQLの最大数は、サーバへの接続要求は、当然のことながら、確立することができるので、より多くの接続であれば、 MySQLは盲目的に設定値を増加させないので、値を調整するために、より多くのメモリの費用がかかります、接続ごとにバッファ間の接続を提供します。つながることでCONN% 'ワイルドカード値の大きさを決めるために、接続数の現在の状態を表示します。

6000 =てmax_connect_errors
パラメータ値のオーバー割り込みエラー接続番号がある場合は#同じホストの場合、ホスト接続が無効になります。ホストが解除されたために、実行します。FLUSH HOSTを。

= 65535 open_files_limitの
#オープンファイル記述子は、MySQL、デフォルトの最小1024制限;、遠大open_files_limitが設定されていない、とMAX_CONNECTIONS * 5比較のulimit -n値、
open_files_limitを比較した場合、#1 open_file_limitが構成されていますそして、max_connectionsを* 5の値は、Dayongいます。

= 128 table_open_cacheの
#MySQLのMySQLがキャッシュに適切な情報を見つけることができないとき、テーブルごとを開いて、ディスクのみを読み取るために、いくつかのデータがtable_open_cacheのためにキャッシュに読み込まれます。64のデフォルト値
#は、システム200の同時接続200には、このパラメータを設定する必要があることが想定される* N(Nは、各接続に必要なファイル記述子の数である);
セットが大きい場合、#1 table_open_cacheの処理システムならそれほどファイルディスクリプタは、その後、クライアントの失敗があるでしょう、接続されていません

4M = max_allowed_pa​​cketの
#許容パケットサイズ、必要なときにだけので、非常に安全である変数の値を大きくすると、追加のメモリを割り当てます。たとえば、あなたが長いクエリまたはmysqldを発行した場合にのみ、大きな結果行mysqldがより多くのメモリを割り当てます返さなければなりません。
#デフォルトはあまり理由方変数は、クライアントとサーバーの間でエラーパケットをキャプチャし、偶発的使用は、大きなパケットメモリのオーバーフローにつながらないことを確実にするための予防策です。

1M = binlog_cache_size
提出ログが存在しない場合に#トランザクションは、キャッシュにレコードを生成し、トランザクションが提出されるまでコミットログを入れて、待ってディスクに永続化。32K binlog_cache_sizeのデフォルトサイズ

= 8Mのmax_heap_table_sizeの
#は、作成することができ、メモリテーブル(メモリテーブル)ユーザのサイズを定義します。この値は最大行値記憶テーブルを計算するために使用されます。この変数は、動的な変更をサポートしています

= 16M tmp_table_sizeの
MySQLの(堆積)表のバッファサイズの#ヒープ。DML命令内のすべての関節が完了し、関節のほとんどがさえ完了して一時テーブルを持つことはできません。
#ほとんどの一時テーブルはメモリベース(HEAP)テーブルです。ハードディスク(およびすべての列の長さ)で一時テーブルを持つことは大きなレコード長または列を格納BLOBテーブルです。
#内部ヒープ(蓄積)テーブルサイズがtmp_table_sizeを超えた場合は、MySQL自動的にメモリヒープテーブルの代わりに、ハードディスクベースのMyISAMテーブルが必要に応じてすることができます。また、tmp_table_sizeオプションを設定することで、一時テーブルのサイズを増やすことができます。それは価値の増加は、MySQLが同時にヒープテーブルのサイズを大きくする場合は、クエリ速度の接続を改善する効果を達成することができ、あります

2M = read_buffer_size
#MySQLのバッファサイズに読み込みます。バッファに読み込ま順次スキャンを割り当てるための要求テーブルは、MySQLはそれのためにいくつかのメモリ・バッファを割り当てます。read_buffer_size変数は、バッファのサイズを制御します。
テーブルのシーケンシャルスキャンの要求が非常に頻繁にあり、多くの場合、あなたはあまりにも遅いスキャン思われる場合は#、その性能は、変数値のサイズとバッファメモリを増やすことで改善することができます

= 8M read_rnd_buffer_size
#MySQLのランダムリードバッファサイズ。任意の順序で行を読み取るとき、ランダムリード・バッファを割り当て、(例えば、順ソート)。お問い合わせをご注文の際、
大量のデータを並べ替え、必要に応じて#MySQLは最初に、再び求めてディスクを避けるために、このバッファを、それをスキャンし、検索を高速化し、その値を調整する必要があります。ただし、MySQLは各クライアント接続のためのバッファ領域を解放しますが、あまりにも多くのメモリのオーバーヘッドを避けるために適切な値を設定することが可能でなければなりません

= 8M sort_buffer_size
#MySQLが使用されるソート・バッファ・サイズを行います。あなたは、スピード、ORDER BYを増やしたい場合は、MySQLが余分なソート段階ではなく、インデックスを使用するために得ることができるかどうか最初に参照してください。
#そうでない場合は、変数sort_buffer_sizeのサイズを大きくしようとすることができます

= 8M join_buffer_size
#クエリ組み合わせバッファ・サイズを使用することができ、sort_buffer_sizeのように、対応する割当パラメータメモリは、専用のそれぞれに接続されています。

8はthread_cache_sizeを=
#値(デフォルト8)は、クライアントのスレッドがキャッシュに配置され、スペースがある場合は、キャッシュが切断された場合、キャッシュ内のスレッドの数を節約するために再利用できる
スレッドが再されている場合#要求、要求はキャッシュが空または新しい要求であれば、そのスレッドは、多くの新しいスレッドがある場合は、再作成されます、キャッシュから読み込まれ
、この値は、接続を比較することで、システムのパフォーマンスを向上させることができます#増加変数Threads_created状態は、我々はこの変数の効果を見ることができます。- (>調整すべき値を表す)
以下の規則に従って提供される物理メモリの#:
。#1G - > 8
#2G - > 16
#3G - > 32
3Gよりも大きい# - > 64

query_cache_size = 8M
クエリバッファサイズ#MySQL(4.0.1から、MySQLがクエリキャッシュ・メカニズムを提供する)クエリキャッシュを使用して、MySQLのSELECT文とクエリ結果をバッファに格納される、
同じSELECT文の将来位(大文字と小文字の区別)書き込み、バッファから直接結果を読み取ります。MySQLのマニュアルによると、問い合わせバッファは、最大238パーセントの効率にすることができます。
「Qcache_の%」ステータス値をチェックすることにより#は、あなたがquery_cache_sizeセットが合理的である知ることができます。Qcache_lowmem_prunesの値が非常に大きい場合、それはバッファが、多くの場合、そうではないことを示し、
Qcache_hitsの値が非常に大きい#あれば、それは、クエリキャッシュが非常に頻繁に使用されることを示していますこの時点で、バッファサイズを増やす必要があり、値が少しQcache_hits場合、それは、あなたのクエリの繰り返し率が非常に低いことを示している
クエリキャッシュを使用するには、この場合、#が、効率に影響を与えるだろう、バッファを照会しませ検討します。また、SELECT文の加算SQL_NO_CACHEは明らかに、彼らはクエリキャッシュを使用していないと言うことができます

= 2M query_cache_limit
単一のクエリを指定するために使用することができます#バッファサイズ、デフォルト1M

= key_buffer_sizeは4M
#インデックスバッファのサイズに充て、インデックスの増加、それは良いかもしれませんが、あなたは余裕ができると同じくらいに、(すべての読み取りおよび複数の書き込みのために)取り組みます。あなたはそれがあまりにも大きい作る場合は、
#システムは、ページを変更し始めると、本当に鈍化します。このパラメータのメモリ4GBのサーバーの場合は384Mや512Mに設定することができます。ステータス値Key_read_requestsとKey_readsをチェックすることで、
#はkey_buffer_sizeはセットが合理的である知ることができます。比key_reads / key_read_requestsはできるだけ低くあるべきで、
100:1:1000ベター(上記ステータス値が表示STATUS LIKE「KEY_READ%」が得られ、使用されてもよい)#は、少なくとも1です。注:このパラメータの値が高すぎる設定されていますが、サーバー全体の効率が低下します

図4は、ft_min_word_len =
#語彙単語の最小長、デフォルト4

TRANSACTION_ISOLATION = REPEATABLE-READ
#MySQLは4つのトランザクション分離レベルをサポートし、彼らは以下の通りです
。#READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ、SERIALIZABLE
#不在は、MySQLのデフォルトはREPEATABLE-READ、ORACLEのデフォルトを使用していますREAD-COMMITTEDです

MySQLのビンは= log_bin
binlog_format =混血
expire_logs_days = 30#binlogの削除、30日以上

LOG_ERROR = /data/mysql/mysql-error.log#エラー・ログ・パス
slow_query_log = 1
long_query_time = 1#スロークエリ時間1秒以上、スロークエリと比較
slow_query_log_file = /data/mysql/mysql-slow.log

performance_schema = 0
explicit_defaults_for_timestamp

#lower_case_table_names = 1#大文字と小文字を区別しません

スキップ・外部ロック外部ロックを回避するために#MySQLオプションを選択します。このオプションはデフォルトで有効になっています

デフォルトのストレージエンジン= InnoDBの番号デフォルトのストレージエンジン

図1は、innodb_file_per_tableを=
#テーブルスペースをInnoDBは独立モード、データ空間を生成するために、各データベースの各テーブル
#別の表領域の利点を
#1。各テーブルには、独自の個別のテーブルスペースがあります。
#2。各テーブルとインデックスのデータは、独自の表領域に存在しています。
#3。これは、異なるデータベースを移動する単一のテーブルで実現することができます。
#4。スペースは、(ドロップテーブル操作ではなく、自分自身のテーブルスペースの回復に加えて)を回収することができる
#の短所:
#単一のテーブルが過度に上昇し、もし以上100G
#結論:
挿入操作で#共有テーブルスペースはほとんど利点。他のはよく別の表スペースを実行しませんでした。innodb_open_files:あなたは別の表スペース、合理的な調整を有効にすると

= 500 innodb_open_filesの
#制限InnoDBが特にケースライブラリテーブル場合は、これを追加してください、データのテーブルを開くことができます。デフォルト値は300です

= 64M innodb_buffer_pool_size
#InnoDBはMyISAMのとは違って、バッファプールを使用して、元の索引データを格納する。
#大きなあなたはデータがディスクI /少ないO.のために必要となるテーブルアクセスしている、ここで設定した
スタンドアロンで#をデータベースサーバ上で、あなたは80%ののサーバーの物理メモリサイズにこの変数を設定することができ
、オペレーティング・システムのページングバンプを引き起こす可能性があり、物理的メモリの競争に、それ以外の場合は、あまり大きく設定しないでください。#。
#(注)各32ビットシステム上のプロセスは2-3.5Gユーザレベルのメモリの制限を制限することができる、
あまりにも#に設定しないでください。

= 4 innodb_write_io_threadsの
innodb_read_io_threads = 4
、私は読み書きInnoDBのデフォルトに応じてCPUコアの数を変更するには、データ・ページのバックグラウンドスレッド/ O(入力および出力)の要求の処理を#が4である
#注:これら2つのパラメータは、動的な変更をサポートしていません。 、my.cnfファイル内のパラメータを追加する必要があり、変更後のMySQLサービスを再起動し、許可された値は1-64からの範囲

0 = innodb_thread_concurrency
#デフォルトの設定はここで推奨同時の数に制限を意味しない、0であるが、より良いマルチコアCPUの処理能力を再生するには、0に設定されている、並行処理の量を増やします

= 1 innodb_purge_threadsの
操作のInnoDBのタイプ位クリア動作は、周期的な回復不要なデータです。いくつかの以前のバージョンでは、クリア動作は、メインスレッドの一部であり、これは実行手段と、他のデータベース操作をブロックすることができます。
#MySQL5.5.X開始からのバージョンは、操作が別のスレッドで実行され、より多くの同時サポート。ユーザは、構成パラメータinnodb_purge_threads設定することにより、単一の除去動作を使用するかどうかを選択することができる
、明確なスレッドが1である別のセットを表す0(なし別々のスレッド)、ケースのデフォルトのパラメータ設定を#シングルスレッド。1つの勧告

= 2 innodb_flush_log_at_trx_commit
#0 :.ブラシが0の値innodb_flush_log_at_trx_commit書き込まれる場合、トランザクションが(実行のスレッドのMySQLのマスタ・スレッドによって実行される任意の操作なしにコミットされた場合、1秒あたりのディスク・ログ・ファイルにログバッファ
#メイン第二のスレッドごとのバッファをREDOログますディスクに書き込まれたファイル(REDOログ)をREDOログにかかわらず、トランザクションが提出されているかどうかの)デフォルトのログファイルib_logfile1、ib_logfile0です
#1:1にデフォルト値に設定すると、あなたは、トランザクションをコミットするたびに、ログバッファがログにフラッシュされます。
#2:2に設定した場合、各トランザクションがログを書き込むために提出されますが、操作のブラシを実行しません。第二タイマーは、ログファイルを磨くます。なお、それは確かにスケジューリングプロセスに応じて、ディスクにブラシます毎秒100%を保証するものではありません。
#すべてのトランザクションがキャッシュされているファイルシステムとファイルシステムへの書き込みのみ呼び出され、ここで書かれているトランザクション・ログに書き込まれたデータをコミットするので、これは、書き込みデータが書き込まれていることを保証するものではありません物理ディスク
#1は、完全なACIDを確保するために、デフォルト値です。もちろん、あなたがより高い性能と引き換えに1以外の値に、この項目を設定できますが、システムがクラッシュしたとき、あなたはデータの1秒を失うことになります。
#は、その後、0に設定mysqldプロセスがクラッシュし、彼らは、トランザクションの最後の秒を失うことになります。2を設定し、ときに、オペレーティングシステムのクラッシュや電源障害のみデータの最後の1秒を失うことになります。回復時間をやってInnoDBは、この値を無視します。
#要約
#1は最も安全なコースに設定しますが、パフォーマンスのページには、最悪(他の二つのパラメータに関連しますが、容認できない)です。あなたは、データの一貫性と整合性を求めていない場合は、このような高い同時書き込みログサーバとしてのみ最も性能要件は、より高いパフォーマンスを得るために、0に設定している場合、それは、2に設定することができます

2Mはinnodb_log_buffer_sizeの=
Mの単位で、このパラメータは、メモリサイズが使用するこれらのログファイルを決定位 大きなバッファは、パフォーマンスを向上させることができますが、予期しない障害のデータが失われます。MySQLの開発者は、1-8Mの間で設定をお勧めします

= 32Mのinnodb_log_file_sizeの
#は、パフォーマンスを向上させることができ、このパラメータデータ・ログ・ファイルのサイズ、大きく設定を決定するだけでなく、障害が発生したデータベースを回復するために必要な時間を増加させます

=。3 innodb_log_files_in_groupの
パフォーマンスを向上させるために#、MySQLの円形の方法は、ログファイル、複数のファイルに書き込むことができます。推奨設定は3です

= 90 innodb_max_dirty_pages_pct
ダーティデータ率を更新する#InnoDBのメインスレッド・プール・データ・キャッシュは90%未満であります

= innodb_lock_wait_timeout 120 
のInnoDBトランザクションが秒単位でロック・タイムアウトを待つことができる前に#がロールバックされます。InnoDBは自動的に独自のロックテーブルのトランザクションデッドロックを検出し、トランザクションをロールバックします。LOCK TABLESステートメントでのInnoDBは、ロックの設定と指摘しました。デフォルトは50秒です

= 8M bulk_insert_buffer_sizeの
#一括挿入のキャッシュサイズは、このパラメータは、MyISAMストレージエンジンにあります。効率を改善するために、使い捨ての挿入レコード+ 100-1000するようになって。デフォルトは8Mです。データボリュームのサイズのため、増加を倍増させることができます。

= 8M myisam_sort_buffer_sizeの
MyISAMテーブルインデックス修復表をソートまたはテーブルをALTER割り当て作成INDEXプロセスまたは緩衝液でインデックスを作成するテーブルのリカバリのために使用#1のMyISAMサイズのバッファ、

= 10Gのmyisam_max_sort_file_sizeの
#一時ファイルがインデックスよりも多くなることができた場合は、インデックスを作成するために、高速ソートインデックスメソッドを使用しないでください。注:このパラメータは、バイト単位で与えられています

= 1 myisam_repair_threads
値が1より大きい場合、MyISAMテーブルのインデックスが(それ自身のスレッドで各インデックス)プロセスをソートすることによって修復に平行に作成され# 

=は、interactive_timeout 28800
秒の#番号が前にインタラクティブな接続の活動をシャットダウンするサーバーを待ちます。対話型クライアントは、クライアントにmysql_real_connectで使用CLIENT_INTERACTIVEオプション()として定義されます。デフォルト:28800秒(8時間)

28800 = WAIT_TIMEOUT
サーバが非対話型接続の活動をシャットダウンする前に待機する秒数#。スレッドが開始すると、は、interactive_timeoutグローバル値WAIT_TIMEOUTまたはグローバルセッション初期値WAIT_TIMEOUT値に応じて
クライアントの種類に応じて、#(()内のによって定義された接続オプションCLIENT_INTERACTIVEのにmysql_real_connect)。パラメータのデフォルト:28800秒(8時間)
、MySQLサーバでサポートされている接続の#最大数がキャップされ、各接続が確立された後ためには、メモリを消費しますので、私たちは、MySQLサーバに接続するクライアントは、適切なアクションを処理したいです、
#は切断して占有メモリを解放する必要があります。あなたのMySQLサーバがアイドル状態の接続の数が多い場合は、無駄にメモリを消費しますだけでなく、接続が切断せずに蓄積されている場合、
#は、最終的には「あまりにも多くの接続」というエラーが報告されます接続のMySQLサーバーの最大数に到達します。WAIT_TIMEOUT値が設定されているため、システムの操作に応じて決定されるべきです。
プロセス接続スリープ状態の数が多い場合#は、いくつかの時間を実行しているシステムの後、あなたは、システムの現在の接続状態によってショーPROCESSLISTコマンドを表示することができ、このパラメータが設定されている高すぎる、
#適切な調整を小さくすることができます。両方は、interactive_timeoutを設定すると有効になりますWAIT_TIMEOUT。

[mysqldumpを】
クイック
のmax_allowed_pa​​cket =#1 16M、サーバが最大許容パケット長を送信します。

【のmyisamchk]
key_buffer_sizeは= 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M

おすすめ

転載: www.cnblogs.com/manhelp/p/11278757.html