PHP(ピー・エイチ・ピー)

【PHP】CodeIgniter データベースキャッシュ機能を利用

現在、

CodeIgniterを利用してシステムの開発を行っています。

 

それで、

大量のマスターデータを保存したデータベース(テーブル)から、

データを取得する処理が含まれるのですが、

毎回アクセスの度にデータベースにアクセスするのは勿体無いので、

キャッシュを利用したいですよね。

 

そんな場合は、

CodeIgniterには、

=============================
$this->db->cache_on();
=============================

が用意されています。

 

弊社は不動産業者さんのホームページを作成する機会が多いので、

沿線・駅データを扱う機会が多いです。

 

例えば、

沿線と駅のデータを保存したテーブルから、

特定の沿線に紐づく駅の一覧を取得した場合、

====================================================================
select * from trainテーブル where railwayline_cd = 沿線コード
====================================================================

というようなSQLクエリを実行させると思いますが、

駅なんてものは頻繁に増えたり減ったりするものではないので、

キャッシュを使ってやった方がいいです。

 

その場合には、

====================================================================
$this->db->cache_on();
$query = $this->db->query("select * from trainテーブル where railwayline_cd = 沿線コード");
====================================================================

とすれば、

キャッシュの利用が可能になります。

 

逆に、

頻繁に更新が行われるようなテーブルからデータを取得する場合には、

キャッシュが残ってしまうとマズイですね。

 

その場合には、

=============================
$this->db->cache_off();
=============================

を利用すれば、

キャッシュ機能をオフにする事が出来ます。

 

なので、

1つのスクリプトファイルの中で、

「ほとんど更新の無いテーブルからのデータ取得処理」

「頻繁に更新が行われるテーブルからのデータ取得」

が混在する場合には、

$this->db->cache_on(); //キャッシュをオンにする
$query = $this->db->query("select * from trainテーブル where railwayline_cd = 沿線コード");
if($query->num_rows() > 0){
foreach($query->result() as $row){

何らかの処理

}
}

$this->db->cache_off(); //キャッシュをオフにする
$query = $this->db->query("select * from mainテーブル where id = 一意となるID");
if($query->num_rows() > 0){
$res = $query->result();

何らかの処理

}

みたいなコードを書いてやれば、

多分OK!!

です。

 

あとは、

/application/config/database.php

の「cachedir」にキャッシュ用のディレクトリのパスを指定しておけば、

キャッシュが保存されていきます。

 

因みに、

database.phpの「cache_on」を「on」にしておけば、

デフォルトでキャッシュ機能をオンにしておくことも可能です。

0
この記事を書いている人
株式会社ディープ

名前ダッチ

メールアドレスadachi@deep-deep.jp

Twitterはこちら >>

  • コメント: 0

関連記事

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

【2,000円OFF キャンペーン実施中】↓

最近の記事

  1. WP:WordPress(ワードプレス)
  2. 色鉛筆
  3. WP:WordPress(ワードプレス)
  4. WP:WordPress(ワードプレス)
  5. WP:WordPress(ワードプレス)
  6. 文系と理系のメリットとデメリット
  7. 東京駅
  8. 残業
  9. プログラマーになるのに年齢は関係ある?
  10. 年収(収入)
【2,000円OFF キャンペーン実施中】↓

Twitter

ダッチ@職業ブロガー兼プログラマー
@gatsu0000

ConoHa WING 2周年キャンペーン中

アーカイブ

PAGE TOP