MySQLの必要なメモリ量は?

MySQLが必要とするメモリ量は?だいたいどれくらいなのでしょうか?
今回は、簡単な計算式から、それを探ってみたいと思います。


その計算式は、いろいろなところから、大きく2つあるようです。(いずれもそれほど大きく違いはありませんが。)

必要なメモリ量(4.1のリファレンスによる)=
innodb_buffer_pool_size + key_buffer_size +max_connections * (sort_buffer_size + read_buffer_size) + max_connections * 2 MB
必要メモリ量=グローバルバッファのサイズ+(各スレッドのバッファサイズの合計 × 最大接続数(max_connections))

各スレッドのバッファサイズの合計とは、以下の値の合計値です。

  • sort_buffer_size
  • myisam_sort_buffer_size
  • read_buffer_size
  • join_buffer_size
  • read_rnd_buffer_size
グローバルバッファのサイズは、以下の値の合計値です。

  • key_buffer_size
  • innodb_buffer_pool_size
  • innodb_log_buffer_size
  • innodb_additional_mem_pool_size
  • net_buffer_length

※実践ハイパフォーマンスMySQL による

実践ハイパフォーマンスMySQL 第2版
実践ハイパフォーマンスMySQL 第2版

後者を使って、簡単に計算してみましょう。
まずは、必要な情報を取り出します。
コマンドラインからmysqlでデータを抽出しましょう。

> mysql -uroot -p
> password:
        :
mysql> show variables;
 
+-----------------------------------+-------------+
| Variable_name                     | Value       |
+-----------------------------------+-------------+
|        :                          
| innodb_additional_mem_pool_size   | 1048576     |
|        :                          
| innodb_buffer_pool_size           | 8388608     |
|        :                          
| innodb_log_buffer_size            | 1048576     |
|        :                          
| join_buffer_size                  | 131072      |
| key_buffer_size                   | 16777216    |
|        :                          
| max_connections                   | 100         |
|        :                          
| myisam_sort_buffer_size           | 8388608     |
|        :                          
| net_buffer_length                 | 8192        |
|        :                          
| read_buffer_size                  | 262144      |
|        :                          
| read_rnd_buffer_size              | 524288      |
|        :                          
| sort_buffer_size                  | 524288      |
|        :                          
+-----------------------------------+-------------+
240 rows in set (0.02 sec)
 
mysql>

こんな感じで情報が拾いだせます。(上記の出力は、mysqlをインストールしただけのデフォルトの値です。)
さあ、後者の計算式にそれぞれあてはめて計算してみましょう。

各スレッドのバッファ = 524288+8388608+262144+131072+524288=9830400
グローバルバッファ = 16777216+8388608+1048576+1048576+8192=27271168
最大接続数 = 100

必要メモリ量
=グローバルバッファのサイズ+(各スレッドのバッファサイズの合計 × 最大接続数(max_connections))
= 27271168 + (9830400 * 100) = 1,010,311,168

つまり、mysqlは、何もチューニングしない状態では、
約1GB
必要なんですね。

ほとんどのレンタルサーバーでは、mysqlサーバーとapache(web)サーバーとは別にされています。
そのため、あまり意識する必要はないでしょうが、VPSやサーバー丸ごとレンタルをお考えの場合や自宅サーバーなどをお考えの方は、ご参考ください。

独自ドメインが使える格安レンタルサーバーなら


がおすすめです。
このお値段でMySQLもphpも動かせますから、とりあえず、自分のサイトを作ってみたい方には、おすすめです。

この記事を読んだ人は次の記事も読んでいます:

口コミ・評判

口コミ・評価を投稿 :

お名前 *

メールアドレス *
(口コミ・評価欄には、表示されませんが入力が必要です。)

サイトアドレス

phpとmysql が使えるおすすめ格安レンタルサーバーをご紹介します。もちろん、Joomla!,WordPress,Mobile Typeなどの有名なCMSも使える格安、割安感のあるレンタルサーバーを厳選して、比較紹介します。
新型コンピュータウィルス「JSRedir-R(通称:Gumblar・GENOウィルス)」の亜種が、2009年末より猛威を振るっており、 現在もウィルスによって、FTP接続パスワードが抜き取られる事象が多発しております。

このサイトでは、ランキング情報には、すべてのレンタルサーバーの情報が表示されますが、 おすすめ情報には、SFTP/FTPSに対応していないレンタルサーバーをおすすめはしないようにしております。
お気に入り(BookMark) : はてなdel.icio.usLivedoor ClipYahoo!FC2Nifty ClipPOOKMARK. AirlinesBuzzurl(バザール)Choixnewsing















サーバー1年目総額最安値

※1年目総額とは、初期設定費用+月額使用料1年分の総額です。

ドメイン1年目最安値

※1年目最安値とは、新規登録料金1年契約料金の最安値です。