差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン両方とも次のリビジョン
mariadb [2021/10/30 21:03] – [よくある設定例] techwikimariadb [2021/11/05 18:57] techwiki
行 85: 行 85:
   * READ_RND_BUFFER_SIZE   * READ_RND_BUFFER_SIZE
  
-SELECT @@GLOBALやSET GLOBALのコマンドで、上記のパラメーターを確認・変更できる。+''SELECT @@GLOBAL''''SET GLOBAL''のコマンドで、上記のパラメーターを確認・変更できる。
  
  
行 116: 行 116:
 ERROR 1238 (HY000): Variable 'innodb_log_file_size' is a read only variable ERROR 1238 (HY000): Variable 'innodb_log_file_size' is a read only variable
 </code> </code>
 +
 +
 +===== クエリキャッシュを設定 =====
 +デフォルトではクエリキャッシュは無効になっている。
 +
 +有効化すると、SELECT文の実行結果がキャッシュに保存される。
 +同じクエリが発生したときは、DBを参照せずにキャッシュから返すので、レスポンスが速くなる。
 +
 +==== クエリキャッシュの設定を確認 ====
 +<code>
 +SHOW VARIABLES LIKE '%query_cache%';
 +</code>
 +
 +mysqlのコンソールで上記のようなコマンドを打つと、下記のような結果が得られる。
 +
 +<code - 実行結果>
 ++------------------------------+---------+
 +| Variable_name                | Value   |
 ++------------------------------+---------+
 +| have_query_cache             | YES     |
 +| query_cache_limit            | 1048576 |
 +| query_cache_min_res_unit     | 4096    |
 +| query_cache_size             | 1048576 |
 +| query_cache_strip_comments   | OFF     |
 +| query_cache_type             | OFF     |
 +| query_cache_wlock_invalidate | OFF     |
 ++------------------------------+---------+
 +7 rows in set (0.001 sec)
 +</code>
 +
 +''query_cache_type''が''OFF''なので、クエリキャッシュの機能が有効になっていない。
 +
 +
 +==== クエリキャッシュを有効化、キャッシュサイズを変更する ====
 +<code>
 +vi /etc/my.cnf.d/server.cnf
 +</code>
 +
 +<code - 変更前>
 +[mysqld]
 +</code>
 +
 +<code - 変更後>
 +[mysqld]
 +query_cache_size = 64M
 +</code>
 +
 +''/etc/my.cnf.d''というディレクトリにある
 +''server.cnf''というファイルを開く。
 +
 +''[mysqld]''のセクションには、デフォルトでは何も書かれていない。
 +''query_cache_size = 64M''と追記することで、クエリキャッシュのサイズを設定できる。
 +
 +''query_cache_size''のサイズを設定すると、連動して
 +''query_cache_type''の値が''ON''になる。
 +
 +==== mysqlを再起動 ====
 +<code>
 +systemctl restart mysql
 +</code>
 +''/etc/my.cnf.d/server.cnf''への変更を反映させるには、mysqlの再起動が必要。
 +
 +==== クエリキャッシュの設定を再確認 ====
 +<code>
 +SHOW VARIABLES LIKE '%query_cache%';
 +</code>
 +
 +<code - 実行結果>
 ++------------------------------+----------+
 +| Variable_name                | Value    |
 ++------------------------------+----------+
 +| have_query_cache             | YES      |
 +| query_cache_limit            | 1048576  |
 +| query_cache_min_res_unit     | 4096     |
 +| query_cache_size             | 67108864 |
 +| query_cache_strip_comments   | OFF      |
 +| query_cache_type             | ON       |
 +| query_cache_wlock_invalidate | OFF      |
 ++------------------------------+----------+
 +7 rows in set (0.002 sec)
 +</code>
 +
 +''query_cache_type''が''ON'になっている。
 +
 +また、''query_cache_size''が''67108864''になっている。
 +
 +67108864 / 1024 / 1024 = 64MB
 +
 +==== キャッシュのヒット率を確認 ====
 +<code>
 +SHOW SESSION STATUS LIKE 'Qcache%';
 +</code>
 +
 +mysqlのコンソールで上記のコマンドを実行すると、下記のような結果が得られる。
 +
 +<code - 実行結果>
 ++-------------------------+----------+
 +| Variable_name           | Value    |
 ++-------------------------+----------+
 +| Qcache_free_blocks      | 1        |
 +| Qcache_free_memory      | 63017688 |
 +| Qcache_hits             | 3836     |
 +| Qcache_inserts          | 1607     |
 +| Qcache_lowmem_prunes    | 0        |
 +| Qcache_not_cached       | 108      |
 +| Qcache_queries_in_cache | 861      |
 +| Qcache_total_blocks     | 1764     |
 ++-------------------------+----------+
 +8 rows in set (0.001 sec)
 +</code>
 +
 +キャッシュのヒット率 = Qcache_hits / (Qcache_hits + Qcache_inserts + Qcache_not_cached)
  • 最終更新: 2023/05/19 20:30