PHPでMySQLデータベースを操作する場合、キャッシュされたデータが時間内に更新されないという問題に遭遇することがあります。 MySQLのキャッシュメカニズムはクエリ効率を改善できますが、場合によっては、最新のデータが取得されるようにキャッシュを強制的に更新する必要があります。 mysqli ::更新関数は、この関数を実装するために使用されるツールです。
この記事では、 MySQLI ::更新機能の使用法を詳細に紹介し、MySQLキャッシュを更新するために正しく呼び出す方法を説明し、サンプルコードを添付して理解するのに役立ちます。
MySQLI :: REFRESHは、PHPのMySQLI拡張機能によって提供されるメソッドであり、開発者がMySQLサーバーのステータス情報とキャッシュを更新できるようにします。 MySQLのフラッシュ操作に対応し、テーブルキャッシュ、クエリキャッシュなど、さまざまなキャッシュを更新できます。
public bool mysqli::refresh(int $options)
$オプション:通常は事前定義された定数を使用して、1つ以上の更新オプションの組み合わせです。
返品値:実行が成功した場合はtrueを返し、障害がfalseの場合はfalseを返します。
MySqli :: Refreshによってサポートされている一定のオプションを以下に示します。これは組み合わせて使用できます。
mysqli_refresh_grant :許可関連のキャッシュを更新します。
mysqli_refresh_log :ログファイルを更新します。
mysqli_refresh_tables :テーブルキャッシュを更新します。
mysqli_refresh_hosts :ホストキャッシュを更新します。
mysqli_refresh_status :ステータス変数を更新します。
mysqli_refresh_threads :スレッドキャッシュを更新します。
mysqli_refresh_slave :マスタースレーブレプリケーションに関連する情報を更新します。
mysqli_refresh_master :メインサーバー関連情報を更新します。
mysqli_refresh_query_cache :クエリキャッシュを更新します。
次の例は、MySQLデータベースに接続してクエリキャッシュを更新する方法を示しています。
<?php
$mysqli = new mysqli("gitbox.net", "username", "password", "database");
if ($mysqli->connect_errno) {
echo "接続に失敗しました: " . $mysqli->connect_error;
exit();
}
// クエリキャッシュを更新します
if ($mysqli->refresh(MYSQLI_REFRESH_QUERY_CACHE)) {
echo "クエリキャッシュの更新は正常に更新されます";
} else {
echo "クエリキャッシュの更新に失敗しました: " . $mysqli->error;
}
$mysqli->close();
?>
mysqlie_refresh_query_cacheオプションは、mysqlクエリキャッシュを更新するためにここで使用されます。
複数のキャッシュを同時に更新したい場合は、ビットワイズまたは演算子を使用して定数を渡すことができます|組み合わせ:
$mysqli->refresh(MYSQLI_REFRESH_TABLES | MYSQLI_REFRESH_QUERY_CACHE);
このコードは、テーブルキャッシュとクエリキャッシュを更新します。
許可の問題:キャッシュを更新する操作には、通常、管理者の特権(リロード特権など)が必要であり、それ以外の場合は実行が失敗します。
キャッシュの更新コスト:キャッシュの頻繁な更新は、データベースのパフォーマンスに影響を与える可能性があり、必要に応じて使用することをお勧めします。
アプリケーションの範囲: MySQLI ::更新は、主に、開発やデバッグや操作とメンテナンススクリプトなど、キャッシュのリフレッシュを手動で制御する必要があるシナリオで使用されます。
MySQLI :: REFRESH関数を合理的に使用することにより、PHP開発者はMySQLキャッシュをより柔軟に制御し、データの一貫性と最新のものを確保することができます。