差分

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

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
mariadb [2021/10/30 21:03] – [よくある設定例] techwikimariadb [2023/05/19 20:30] (現在) – [クエリキャッシュの設定を再確認] techwiki
行 1: 行 1:
-======MariaDBMySQL====== +====== MariaDB(MySQL======
 [[https://mariadb.com/kb/ja/mariadb|MariaDB公式]] [[https://mariadb.com/kb/ja/mariadb|MariaDB公式]]
  
-MariaDBはMySQL派生のデータベースシステム+MariaDBはMySQL派生のデータベースシステム
  
-MySQLとは互換性がある +MySQLとは互換性がある 
-内部の実装はともかく、DBを利用する側から見ればMySQLとMariaDBは99%同じものと考えていい+DBを利用する側から見ればMySQLとMariaDBは同じものと考えていい
  
-たとえば、WordPressのインストール要件にMySQLと書かれているような場合は、純正のMySQLだけでなくMariaDBも使える +たとえば、WordPressのインストール要件にMySQLと書かれているような場合は、純正のMySQLだけでなくMariaDBも使える 
-むしろ、MariaDBの方が性能が良いので、普通はMariaDBを使う+むしろ、MariaDBの方が性能が良いので、普通はMariaDBを使う
  
-Windows環境でXAMPPなどを使っている人も多いと思うが +Windows環境でXAMPPなどを使っている人も多いと思うが 
-XAMPPに同梱されているMySQLは、MariaDBである+XAMPPに同梱されているMySQLは、MariaDBである
  
 ===== MariaDBをインストール・設定する方法 ===== ===== MariaDBをインストール・設定する方法 =====
行 18: 行 17:
 [[/mariadb:install|MMariaDBをインストール・設定する方法]] [[/mariadb:install|MMariaDBをインストール・設定する方法]]
  
-MariaDBMySQLのインストールと初期設定についてのまとめ+MariaDB(MySQL)のインストールと初期設定についてのまとめ
  
 =====phpMyAdminをインストール・設定する方法===== =====phpMyAdminをインストール・設定する方法=====
 [[/mariadb:phpmyadmin|phpMyAdminをインストール・設定する方法]] [[/mariadb:phpmyadmin|phpMyAdminをインストール・設定する方法]]
  
-MariaDBMySQLの管理ツールphpMyAdminを使えるようにする+MariaDB(MySQL)の管理ツールphpMyAdminを使えるようにする
 =====MySQLの使い方===== =====MySQLの使い方=====
 [[/mariadb:mysqlの使い方|MySQLの使い方]] [[/mariadb:mysqlの使い方|MySQLの使い方]]
  
-MariaDBのインストールと初期設定完了後 +MariaDBのインストールと初期設定完了後 
-運用で使うコマンドなどのまとめ+運用で使うコマンドなどのまとめ
  
 ===== MYSQLDUMPの使い方 ===== ===== MYSQLDUMPの使い方 =====
行 38: 行 37:
   * MyISAM   * MyISAM
   * InnoDB   * InnoDB
-など、どれを使っているのかを確認する方法+など、どれを使っているのかを確認する方法
  
-MySQLのバージョンにもよるが、デフォルトでは<color #ed1c24>**InnoDB**</color>を使っているはず+MySQLのバージョンにもよるが、デフォルトでは<color #ed1c24>**InnoDB**</color>を使っているはず
  
-SQLコマンドで確認する+SQLコマンドで確認する
  
 ==== 使用可能なストレージエンジン一覧を表示 ==== ==== 使用可能なストレージエンジン一覧を表示 ====
行 55: 行 54:
 </code> </code>
  
-table_schemaはデータベース名 +table_schemaはデータベース名 
-table_nameはテーブル名+table_nameはテーブル名
  
-engineというのが、MyISAMやInnoDBなどの、ストレージエンジン+engineというのが、MyISAMやInnoDBなどの、ストレージエンジン
  
  
行 67: 行 66:
 </code> </code>
  
-INNODB_BUFFER_POOL_SIZEのメモリー割当量を確認+INNODB_BUFFER_POOL_SIZEのメモリー割当量を確認
  
-1024で2回割ることで、単位をMBにしている+1024で2回割ることで、単位をMBにしている
  
 ==== メモリーの割り当て量を変更 ==== ==== メモリーの割り当て量を変更 ====
行 76: 行 75:
 </code> </code>
  
-INNODB_BUFFER_POOL_SIZEのメモリー割当量を256MBに設定+INNODB_BUFFER_POOL_SIZEのメモリー割当量を256MBに設定
  
 ==== メモリー割り当てチェック項目 ==== ==== メモリー割り当てチェック項目 ====
行 85: 行 84:
   * READ_RND_BUFFER_SIZE   * READ_RND_BUFFER_SIZE
  
-SELECT @@GLOBALやSET GLOBALのコマンドで、上記のパラメーターを確認・変更できる+''SELECT @@GLOBAL''''SET GLOBAL''のコマンドで、上記のパラメーターを確認・変更できる
  
  
行 103: 行 102:
 READ_RND_BUFFER_SIZE = 4MB READ_RND_BUFFER_SIZE = 4MB
  
-環境にもよるが、デフォルトでは「元の値」くらいの数値になっているので、「変更後の値」くらいに変更する+環境にもよるが、デフォルトでは「元の値」くらいの数値になっているので、「変更後の値」くらいに変更する
  
  
行 111: 行 110:
 </code> </code>
  
-上記のコマンドはエラーになり、サイズ変更できず+上記のコマンドはエラーになり、サイズ変更できず
  
 <code> <code>
 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