ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルのデータベース キャッシュの原則

PHP_PHP チュートリアルのデータベース キャッシュの原則

WBOY
WBOYオリジナル
2016-07-13 17:07:02785ブラウズ

この記事の著者は主にphpのデータベースキャッシュ、phpキャッシュ、cache_write、var_export関数を使ってデータをキャッシュしているのですが、その書き方はとても良いと思います。

PHP におけるデータベース キャッシュの原則

この記事の著者は主にphpのデータベースキャッシュ、phpキャッシュ、cache_write、var_export関数を使ってデータをキャッシュしているのですが、その書き方はとても良いと思います。


バックグラウンドアプリケーションがブラウザからクエリリクエストを受け取り、その都度データベースに接続してデータを読み込むと、必然的にデータベースへの負担が大きくなります。多くの場合、リクエストが繰り返されるため、キャッシュ テクノロジーを使用してこれらの繰り返し情報を保存し、再利用することで、プログラムのパフォーマンスを大幅に向上させることができます。
1.キャッシュ機能
Cache_write 関数は $string パラメータを受け入れ、それを $file ファイルに書き込みます。 var_export 関数に注目してください。その機能は次のとおりです:
この関数は、関数に渡された変数に関する構造情報を返します。返される表現が正当な PHP コードである点を除けば、var_dump() と似ています。関数の 2 番目の引数を TRUE に設定することで、変数の表現を返すことができます。
これらのパラメーターは配列または定数にすることができ、これらの配列または定数は通常、データベースから取得したレコード、またはオブジェクトのシリアル化を解除した後に取得したデータです。これらはローカル テキスト ファイルにキャッシュできます。
cache_write 関数は非常に単純です。データを読み取る必要がある場合、まずキャッシュが存在するかどうかを確認し、キャッシュが存在する場合はデータベースに接続せずに、キャッシュされたテキスト ファイルを直接読み取ります。配列または定数のデータを直接使用できます。
[php]
//ファイル名 func.inc.php
define("CACHEDIR", "./"); //キャッシュフォルダーを定義します
関数cache_write($file, $string, $type = 'array')
{
if(is_array($string))
{
$type = strto lower($type);
If($type == '配列')
{
$string = "";
}
elseif($type == '定数')
{
$data='';
foreach($string as $key => $value)
$data .= "define('".strtoupper($key)."','".addslashes($value)."');n";
$string = "";
}
}
$strlen = file_put_contents(CACHEDIR.$file, $string);
chmod(CACHEDIR.$file, 0777);
$strlen;
を返します }
関数cache_read($file)
{
$cachefile = CACHEDIR.$file;
if(!file_exists($cachefile))
配列()を返します;
リターン include $cachefile;
}
関数cache_delete($file)
{
@unlink(CACHEDIR.$file) を返します;
}
if(!function_exists('file_put_contents'))
{
定義('FILE_APPEND', 8);
関数 file_put_contents($file, $string, $append = '')
{
$mode = $append == 'wb' : 'ab';
$fp = @fopen($file, $mode) または exit("ファイル $file を開けません!");
群れ($fp, LOCK_EX);
$stringlen = @fwrite($fp, $string);
群れ($fp, LOCK_UN);
@fclose($fp);
$stringlen を返します;
}
}
?>
[/php]
2. 書き込みキャッシュと読み取りの例
[php]
//書き込みキャッシュ
「func.inc.php」を含める;

$arr = 配列 (1, 2, 配列 ("a", "b", "c"));
cache_write('test.cache.php', $arr); //キャッシュファイルtest.cache.php
?>
[/php]
[php]
//読み取りキャッシュ
「func.inc.php」を含める;

$var =cache_read('test.cache.php');
print_r($new_var);

print_r($var);

foreach ($var as $k=>$v)
{
エコー '
$v ;
}
?>
[/php]
3. パフォーマンス分析
キャッシュによってパフォーマンスが向上する理由は、ローカル ディスク領域をネットワーク アクセス速度とデータベース サーバーのアクセス時間と交換するためです。
a = ローカルの読み取りおよび書き込み時間
b = このマシンが占有するスペース
c = ネットワーク送信時間
d = データベースサーバーのディスク時間
データベースとアプリケーションが 1 台のマシン上に存在する場合、a と d の主な比較は明確でないか、さらに悪いことになると推測できます。データベース システムはディスク アクセス用に注意深く最適化されているため、オペレーティング システムの通常のファイルの読み取りおよび書き込みとは比較になりません。
ローカル マシンのディスク アクセス効率が悪い場合、ローカル マシンのキャッシュからデータを取得するよりも、LAN 上のデータベースからデータを取得する方が速い場合があります。このような状況は比較的まれです。リクエストの数が大幅に増加すると、キャッシュの効果が明らかになります。
とても良いと思うのでオススメします。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/630479.html技術記事この記事の著者は主にphpのデータベースキャッシュ、phpキャッシュ、cache_write、var_export関数を使ってデータをキャッシュしているのですが、とても良く書けていると思います。 PHP でのデータベース キャッシュ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。