人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP

現在MySQLとPHPをりようしたフォーラムを運営しているのですが、毎回アクセスのたびにSQLが数個実行され負荷がかかってしまっています。

以前質問したら memcached があるということがわかったのですが、いまいち仕組みがわかりません。そこで質問です。

そのようにインストールし、今現在あるスクリプトをどのように改造すればいいのでしょうか?

よろしくお願いします。

●質問者: esecua
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:memcached MySQL PHP SQL いまいち
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● studioes
●35ポイント

>1、ダウンロードしたmemcacheを?

バイナリを拾ってきたなら、適切なディレクトにコピーして、php.iniでエクステンションを有効化して、Webサービスを再起動。

>2、このmemcacheですが、?

しません。 更新する仕組みを自分で組む必要があります(更新処理時に、memcache::delete()を実行する等)

>3、memcahced(http://www.danga.com/memcached/)も?

PHPのmemcacheは、memcachedへ接続する為の中間システムに過ぎませんので、memcachedを導入しなければなりません。

>4、今ある?

あります。

>5、APCなど?

APCが何かわかりません。 UPSしか思いつかん・・・

・インストール

http://tokita.info/modules/wordpress/index.php?cat=21

デーモンとPHPエクステンションの組み込みが必要なので共有レンタルサーバ等で管理権限がなければ利用できない。

・改造

リアルタイムに更新される必要がないクエリの結果などをmemcachedに入れておいて、memchachedにデータがある間は新規のクエリ発行をせずに、memcachedからデータを取ってくるようにする。

例えば、全員に表示するお知らせ情報をDBに入れているなら、それの選択結果をaddしておいて、get出来る間はgetで済ませる。 get()==falseになれば、クエリを発行して再度addしておく。 また、お知らせ情報を更新するページでは、更新時にdelete()を実行して削除しておく。

◎質問者からの返答

回答ありがとうございます。

>php.iniでエクステンションを有効化して..

?です。意味はわかるのですが、それをどのように記述すればいいのかその説明ではまったくわかりません。


改造の件ですが、いまいち文字での説明ではいまいち理解できないです。

ちなみにAPCとはPECLのAPCパッケージのことです。


2 ● studioes
●35ポイント

・エクステンションの有効化

http://shiro.exbridge.info/archives/50980652.html

php.iniで

extension=php_memcache.dll

を追記。

変更を適用するにはWebサービス(Apache等)を再起動。

・APCもmemcacheも同じような物。 APCはローカルのメモリにキャッシュするのに対して、memcacheはmemcachedサーバにキャッシュするから、キャッシュだけ別のサーバにしたりも出来る。

・例

$mc = new Memcache;

$mc->connect('memcache_host', 11211);

if($oshirase = $mc->get('oshirase')){

}else{

?DBから$oshiraseに情報を拾ってくる?

$mc->set('oshirase', $oshirase, MEMCACHE_COMPRESSED, 60);

}

echo($oshirase);

memcachedにoshiraseが生存している間(最終DB問い合わせから60秒)、memcachedからお知らせを取得し、存在しなければ従来通りDBから取って来る。 また、DBから取ってきたときにはmemcachedに入れておく。 これで、DBへのアクセスは更新がない状態では60秒に1回で済む。

insert into oshirase values?の様な処理を行う段階で、

$mc->delete('oshirase');の様にして、memcachedのoshiraseを削除しておけば、$mc->get('oshirase')の戻り値がfalseになるので、DBから取得される。

◎質問者からの返答

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ