MySQLの必要なメモリ量は?
MySQLが必要とするメモリ量は?だいたいどれくらいなのでしょうか?
今回は、簡単な計算式から、それを探ってみたいと思います。
その計算式は、いろいろなところから、大きく2つあるようです。(いずれもそれほど大きく違いはありませんが。)
innodb_buffer_pool_size + key_buffer_size +max_connections * (sort_buffer_size + read_buffer_size) + max_connections * 2 MB
- 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でデータを抽出しましょう。
> 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も動かせますから、とりあえず、自分のサイトを作ってみたい方には、おすすめです。
この記事を読んだ人は次の記事も読んでいます:


口コミ・評判
口コミ・評価を投稿 :