はチューニングのinnodb_buffer_pool_size重要なSolaris ZFS?
質問
まだ走行は緩やかなサイズ(350GB)データベースがかなり大きなテーブル(数百万行50GB)である場合にはサーバー(2xクアッドコアXeons,24GB RAM、2.5"10kディスクRAID10)ですので、しっかりとつかの遅に挿入します(例:簡単に挿入し、単一行を90秒!).
当社のinnodb_buffer_pool_size設定400MB、今までの方もこのような設定します。しかし、当社主催のプロバイダの助言することは無関係なので走らせる場合にはZFS.でした。
(今回はダブルポスト https://dba.stackexchange.com/questions/1975/is-tuning-the-innodb-buffer-pool-size-important-on-solaris-zfs, がんができな聴衆がございます!)
解決
いまだ設定innodb_buffer_pool_size高いる400M.の理由がありますか?InnoDBバッファプールがキャッシュのデータを、指数ページのために必要なテーブルにアクセスします。
このクエリーにおすすめinnodb_buffer_pool_size MB:
明示的な変換を行うことも可丸(KBS/電力(1024の場合(pw<0,0,IF(pw>3,0pw)))+0.49999),SUBSTR('KMG',IF(pw<0,0,IF(pw>3,0pw))+1,1))recommended_innodb_buffer_pool_sizeから選択和(data_length+index_length)KBSからinformation_schema.テーブルがエンジン='Mysql')(選択2pw")をB;
では、このクエリは80%の設置RAM(お場合19660M)のいずれか小さくなります。
私もこの設定innodb_log_file_size25%のInnoDBバッファプールサイズです。残念ながら、最大値のinnodb_log_file_sizeは2047M.(1Mの2G)このように設定innodb_log_file_sizeに2047M以降25%のinnodb_buffer_pool_sizeのrecommendated設定4915M.
なrecommedationは disable酸の遵守.利用は0または2のためのinnodb_flush_log_at_trx_commit(デフォルトは1ポ酸にコンプライアンス)これまでより速く為に書き込み のリスク を失うまで1秒分の取引るサードパーティサービスです。
他のヒント
は、 slow-mysql-inserts がまだない場合は、 問題のMySQLドキュメントへのこのリンク - 特にマルチテーブルに複数の挿入を行っている場合は、トランザクションを検討することに関して。
関連性は InnoDBとZFSのパフォーマンスに関するこのMySQLの記事バッファプールサイズを具体的に考慮しています。
表の索引の数/複雑さなどのいくつかの詳細を追加することをお勧めします - これは明らかに大きな違いを生むことができます。
謝罪は、個人的な経験からではなく、むしろ一般的なアドバイスのための謝罪しています、私は怒りでZFSを実行していませんが、それらのリンクのいくつかが使いやすいことを願っています。