最適なMySQL設定を行いますcnf)
-
19-09-2019 - |
質問
それだけではないですが、もうデフォルトの生産MySQLコンフィグレーションファイル(my.cnf
)物とした場合にはUTF-8の設定とInnoDBがデフォルトとしてなるものにすることができます。
[server]
bind-address=127.0.0.1
innodb_file_per_table
default-character-set=utf8
default-storage-engine=innodb
この設定は、次の操作を実行します:
- 結localhost:3306(ループバック)デフォルトの代わりに*:3306(すべてのインタフェースの場合).って増加。
- セプテーブルスペース当たります。行増加に繋がります
- ストのデフォルトの文字セットをUTF-8です。のような工夫をすればもっと簡単に国際化するデフォルトです。
- ストのデフォルトの保存エンジンの為です。行を行レベルロックによるデフォルトです。
また更なる改善の設定を追加により最大3名構成のパラメータ。うに追加するのか。
の改善がこのいずれで性能向上、信頼性の向上又は使いやすさを実現/利便性の高い保守性に増加しました。することはないと仮定してよいのMySQLのインスタンスにて1000MBのアプリです。
解決
より多くのデータをキャッシュするには:
innodb_buffer_pool_size = 512M
あなたが大量のデータを記述する場合:
innodb_log_file_size = 128M
、あまりにも多くのログの切り替えを避けるために。
私は、どのような場合には他に依存するすべてのを追加したい何の第三はありません。
他のヒント
(innodb_buffer_pool_sizeを使用して)のInnoDBに8Mのデフォルトよりも多くのメモリを割り当てる確実エンハンスメントです。あなた、あなたのRAMの80%にそれを設定することができ、より高いあなたは、この値を設定された値については、専用のデータベースサーバー上で、少数のハードディスクとの相互作用になります。ちょうど私の2セントを与えるために、私は<のhref = "http://dev.mysql.comによると...あなたはしかし、ACIDコンプライアンスを犠牲に、innodb_flush_log_at_trx_commit
の値を微調整するいくつかのパフォーマンスの向上を持つことができることに言及したいと思います/doc/refman/4.1/en/innodb-parameters.html」のrel = "nofollowを"> MySQLのマニュアルのます:
の値の場合 innodb_flush_log_at_trx_commitは0です、 ログバッファはに書き出されます 1秒に1回のファイルとフラッシュをログ ディスク操作に上で実行されます ログファイルが、何もで行われていません トランザクションがコミットます。
ですから、原因クラッシュや任意の故障のデータベースに適切に書かれていなかったいくつかのデータを失う可能性があります。ここでもMySQLのマニュアルに従ってます:
しかし、InnoDBののクラッシュリカバリがあります 影響を受けるため、クラッシュの回復ではありません 値に関係なく動作します。
だから、私はお勧めします:
innodb_flush_log_at_trx_commit = 0
最後に、あなたは500のようなものへの最大接続数を増やすことを検討してください(あなたがデータベースにアクセスするWebアプリケーションをサポートするためにMySQLを設定する必要がある場合すなわち)しかし、これはより多くのものですので、あなたは高い接続率を持っている場合以下些細な、よく知られているので、私は接続性を確保するためにback_log
の重要性を強調したいと思います。
私は、これらの情報は、あなたのデータベースサーバーを最適化するのに役立つことを願っています。
あなたは実質的にそれを作ることができるように大きなとして、InnoDBのバッファプールのサイズを大きくします:
innodb_buffer_pool_size=768M
また、一時テーブルのためのいくつかのキーバッファのスペースをお勧めします。
key_buffer_size=32M
その他は、データベースで何をしているかに依存するが、table_cacheのかquery_cache_sizeは、カップル、他の電位になります。