私は8GBのRAMを搭載したサーバ上で500Mbのデータベースを稼動するMySQLサーバを持っています。すべての利用可能なメモリ(私は8Gbの約80%を意味する)を取る任意の賢明な調整がありますか?MySQLのチューニングメモリ超過
答えて
チューニングする内容によって異なります。低メモリ環境であっても、InnoDBやMyISAMを調整したい場合は、このリンクから数式を調整する必要があります。 - >https://dba.stackexchange.com/questions/1/what-are-the-main-differences-between-innodb-and-myisam/2194#2194
基本的には、InnoDB用に75%のRAMが必要です。すべてのMyISAMの場合は、リンクに記載されている数式からの推奨値を測定します。
UPDATE 2011-07-21 13:52 EDT
カットし、この式を貼り付け
SELECT CONCAT(ROUND(KBS/POWER(1024、(PowerOfTwo IF(PowerOfTwo < 0,0、IF > 3,0、PowerOfTwo))+0.49999)、 SUBSTR( 'KMG'、IF(PowerOfTwo <,0,0、IF(PowerOfTwo> 3,0、PowerOfTwo))+ 1,1))recommended_innodb_buffer_pool_size
FROM SELECT SUM(data_length + index_length)KBS FROM information_schema.tablesM
WHERE engine = 'InnoDB')A、
(SELECT 2 PowerOfTwo)B;
与えられたデータセットのInnoDBバッファプールサイズを出力します。
カットし、これと同様の一つ
SELECT CONCAT(ROUND(KBS/POWER(1024、IF(PowerOfTwo < 0,0を、貼り付け(PowerOfTwo> 3,0、PowerOfTwo)))+ 0.4999)IF 、 SBSSTR( 'KMG'、IF(PowerOfTwo <,0,0、IF(PowerOfTwo> 3,0、PowerOfTwo))+ 1,1))recommended_key_buffer_size
FROM(SELECT LEAST(POWER(2,32)、KBS1) KBS FROM
(SELECT SUM(index_length)KBS1 FROM information_schema.tables
WHERE engine = 'MyISAM'およびtable_schema NOT IN( 'information_schema'、 'mysql'))AA
)A、(SELECT 2 PowerOfTwo)B;
指定したデータセットのMyISAMキーバッファサイズが出力されます。
これらの両方の式を実行してください。 MyISAMはインデックスページだけをキャッシュします。 InnoDBは、キャッシュされたデータ・ナッド・インデックス・ページの両方を必要とします。おそらく両方のサイズを組み合わせると、どちらも500 MB未満になります。
UPDATE 2011-07-21夜02時54 EDT
また、あなたはまた、mysqltuner.plをダウンロードし、それを実行することをお勧めしますチューンあたり-DB接続設定に
I recommend tuning your max_connections
をすることができDBサーバー上で実行します。
wget mysqltuner.pl
このPerlスクリプトは、DB接続の設定を超過しているかどうか、またmysqlが想定する最大のRAMがないかどうかを判断します。必要なRAMの容量が80%を超える場合、per_connect DBの設定(sort_buffer_size、read_buffer_size、join_buffer_sizeなど)を低くしてください。
したがって、innodbにはdata_size + index_sizeだけを使用するのが妥当です。私のサーバーでは1.3Gbです。他の空きメモリをどのように使うべきですか? query_cacheかもしれない? – SiberianGuy
max_connectionsに関するご注意は非常に合理的です、ありがとうございます! – SiberianGuy
- 1. 合計超過時間の計算MySQL
- 2. Excelセルの最大文字数を削除/超過/超過/超過Excel
- 3. ActiveRecordの「MySQLの::エラー:超過ロック待機タイムアウト」明白なロックと
- 4. デッドロックとロックタイムアウトの問題がmysqlで超過しました
- 5. イメージダウンロードサービスリソースの超過使用
- 6. Playでのメモリ超過!フレームワークメソッドコール
- 7. CRM fetchxml - AggregateQueryRecordLimitが超過
- 8. SPOJ:一般(期限超過)
- 9. Intプライマリキー超過int範囲
- 10. SuiteScriptがデータユニットを超過
- 11. 最大コールスタックが超過
- 12. Python requests.exceptions.TooManyRedirects:30リダイレクトを超過
- 13. Instagramの投稿のコメント数が超過
- 14. fabric.api.runからの超過出力
- 15. xero apiによる無効の超過
- 16. Maps.newDirectionFinder()毎日のリクエストクォータを超過
- 17. Sql execption:最大ストアドプロシージャのレベルが超過
- 18. AWSエラー:スロットル時のレートが超過
- 19. java.lang.OutOfMemoryError:GCオーバーヘッドの上限を超過リーダー
- 20. ネストされた約束 - モカ - 超過タイムアウト
- 21. jQuery:超過額を加算する
- 22. 角度2 - エラー:(SystemJS)最大コールスタックサイズ超過(...)
- 23. 最大再試行超過 - Elasticsearch
- 24. 503クォータ超過 - Googleアプリケーションエンジンデプロイ済みサイト
- 25. C++プログラムクラッシュ(制限時間を超過)
- 26. 応答バッファリミットASPページでエラーを超過
- 27. ifelseステートメントで制限を超過
- 28. Tweepy Twitter APIレート制限を超過
- 29. setTimeoutコール中に最大コールスタックサイズが超過
- 30. AzureバッチスタートタスクがautoScaleEvaluationIntervalを超過します
MySQLにはいくつかのサンプル構成が用意されています。大きなメモリ環境で... –
私の答えは実際の公式で更新されました! – RolandoMySQLDBA
InnoDBとMyISAMの両方の式で私の答えを更新しました。 – RolandoMySQLDBA