
PHP+MySQLにて5ヶ月のキープリストを作りたいです。
PHP+MySQLにて5ヶ月のキープリストを作りたいです。
先にマルチポストになっていましたら、御免なさい。
現在、情報サイトを作っていますが、お気に入りのような機能を持たせたく思っています。
但し、お気に入りに登録しておける期間は、3ヶ月とかにしたいのですが、この処理は、PHP側でやるべきかMySQL側でやるべきかを悩んでいます。ハードに負荷を掛けずに出来るだけ早く終わらせたいのですが、どちら側でやるべきでしょうか?糸口を何方かお示し願えませんでしょうか?
こんな事書くのも何ですが、アクセス数は、そんなに見込んでいません.....(^^;)
宜しくお願いしますm(_ _)m
投稿日時 - 2010-09-06 23:59:39
自信は無いのですが
PHP = 命令を出す側
SQL = 命令を受けて動く側
と自分は認識していたので、MySQL単体で何か処理を自動で出来るとは思えないんです。
レコードを削除したいのであれば
やはりphpで削除命令を出してやらないと
MySQLは動いてくれないんじゃないかと…
最初の方が言っている
「別処理として毎日午前0時に削除」
ですが、私の解釈では
「レコード検索&削除を実行するphpファイルを別途、用意しておいて
それをcron設定などで毎日午前0時に起動させ処理させる」
といった事ではないかと思います。
その場合、量が多くなるとサーバー負荷になる可能性もありますので
私なら、ユーザーの何らかのアクション時についで処理させます。
例えば、データベースにお気に入り登録を実行するphpファイルに
5ヶ月以上経っているレコード検索と削除をするコードも一緒に書いておきます。
そおすれば、ユーザーの動きに合わせて消えてゆきますので
サーバー負荷は非常に軽いです。
投稿日時 - 2010-09-07 20:25:32
ご教示有り難う御座います。
ようやく納得がいきました。やはりPHP+MySQLの連携が必要なんですね。
PHPで「ユーザーのアクション毎に....」と言う事で、更にスッキリ致しました。
有り難う御座いましたm(_ _)m
本当は、どういうコードかサンプルが、欲しかったりもしたのですが、勉強の為に
自身で教えて下さったロジックを書いてみます。
本当に有り難う御座いました。
投稿日時 - 2010-09-07 22:49:21
このQ&Aは役に立ちましたか?
4人が「このQ&Aが役に立った」と投票しています
回答(2)
PHP側でやると言うのが、具体的にどうするのかわかりませんが、お気に入りをDB登録するのならば、MySQLで処理するのが正攻法と言えます。
そして、5ヶ月以上経ったリストの削除は、別処理として毎日午前0時に削除すればいいでしょう。
また、もし5ヶ月以上経ったリストを削除しない場合でも、0,1のフラグにして0のもの(5ヶ月未満)だけを表示するようにした方が、毎回日付で絞り込むよりは早くなると思います。
そして、この処理(0,1を付与)も上記同様、毎日午前0時に処理します。
でも、サーバーのスペックにもよりますが、お気に入りの件数が数千件程度であれば、SQLで毎回削除してもさほど変わらないのではないでしょうか。
もし、PHPでやるのならば、MySQLを使わずにテキストファイルに保存する方法もあります。(件数が少ないのならば)
投稿日時 - 2010-09-07 09:09:07
早速に回答頂きまして有り難う御座います。
なるほどです。やはりDBの事はDBに仕事させた方が、効率的ってことですよね。
PHPで処理するというのは、最初、「お気に入りに登録する」というボタンを押下した時点で、
MySQLにstart_dateとend_date等と言ったカラムに日付を強制的に入れて、PHPで毎回、日付を
チェックして、そのレコードを削除なんて考えておりました。
やっぱりPHPでの処理は、ややっこしいですよね。済みません。
でもSQLで5ヶ月の判定ってどうやるんだろう?.....ちょっと自分で勉強してみます(^^;)
大変有り難う御座いました。少しスッキリ致しましたm(_ _)m
投稿日時 - 2010-09-07 11:37:07