MySQLクエリキャッシュは、頻繁に実行されるクエリと最近実行されたクエリのクエリ結果を格納するため、すべてを最初から処理することなくすばやく返すことができます。これらは、クエリ速度とデータベースパフォーマンスを向上させるのに非常に役立ちます。データベースでMySQLクエリキャッシュを有効にし、MySQLキャッシュサイズを設定し、クエリキャッシュを無効にする手順は次のとおりです。 注意 、MySQLクエリキャッシュはMySQL 5.7で非推奨になり、MySQL8.0で削除されました。
MySQLクエリキャッシュを有効にする方法
データベースのMySQLクエリキャッシュ構成は次のとおりです。
1。空き状況を確認する
MySQLにログインし、次のコマンドを実行して、MySQLクエリキャッシュがデータベースで使用可能かどうかを確認します。
mysql> SHOW VARIABLES LIKE 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+
結果がYESの場合は、データベースがクエリキャッシュをサポートしていることを意味します。
ボーナスリード:MySQLの遅いクエリログを有効にする方法
2。デフォルトのクエリキャッシュ変数
MySQLクエリキャッシュは多くの変数によって制御されます。次のコマンドを実行して、デフォルト値を変更する前に、まずデフォルト値を表示します。
mysql> show variables like 'query_cache_%' ;
次の出力が表示されます
+------------------------------+----------+ | Variable_name | Value | +------------------------------+----------+ | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 16777216 | | query_cache_type | OFF | | query_cache_wlock_invalidate | OFF | +------------------------------+----------+
上記のクエリキャッシュ変数を見てみましょう
- query_cache_limit –キャッシュできるクエリ結果の最大サイズ
- query_cache_min_res_result –MySQLはクエリ結果をブロックに保存します。これは、各ブロックの最小サイズです。
- query_cache_size –MySQLキャッシュに割り当てられたメモリの合計量を示します。
- query_cache_type –これを0またはOFFに設定すると、MySQLクエリキャッシュが無効になります。 1に設定すると、クエリキャッシュが有効になります。
- query_cache_wlock_invalidate –基になるテーブルがロックされている場合にMySQLがキャッシュから結果をフェッチするかどうかを決定します。
ボーナスリード:トップ5のMySQLモニタリングツール
3。 MySQLクエリキャッシュを有効にする
MySQLからログアウトします。ターミナルを開き、次のコマンドを実行してMySQL構成ファイルを開きます。
$ sudo vi /etc/mysql/my.cnf
[mysqld]セクションの下に次の行を追加します
...
[mysqld]
query_cache_type=1
query_cache_size = 10M
query_cache_limit=256K
query_cache_type変数を1に設定し、個々のクエリキャッシュを256Kb、合計キャッシュを10Mbとして、クエリキャッシュを有効にしました。要件に応じて、query_cache_sizeとquery_cache_limitの値を変更できます。
ボーナスリード:MySQLクエリを高速化する方法
4。 MySQLデータベースを再起動します
MySQLを再起動して変更を適用します
$ sudo systemctl restart mysql
または
$ sudo service mysql restart
または
$ sudo /etc/init.d/mysql restart
うまくいけば、この記事がMySQLクエリキャッシュの構成に役立つことを願っています。