PHP5とMySQLの最新バージョンを使用して、ビジネスリスティングのインプレッションとクリックをトラッキングできるようにします。私の質問は、私がレポートを実行できるように、それを保存する上で最良の方法は何かを自分でやったかどうかです。私はちょうどリストID、ユーザーのIPアドレスを持っていたテーブルを持っていた前に、それはクリックや印象だけでなく、それが追跡された日付だった。しかし、データベースそのものが2GBに近づきつつあり、非常に遅いですが、問題の一部は、検索エンジンや基本的に誰かやリスティングページにアクセスするものを含む誰からのインプレッションとクリックを含む非常に簡単なスクリプトです。PHPと統計情報を保存
表示されている人物が実際に人で、スパイダーではないことを検出できる日付リストに更新されているAPIまたはファイルがありますか?不要な統計情報をデータベースに入力しないでください。ちょうど提案を探して、ちょうどヒットを取得し、夜間にcronジョブを取得して、各ipの各リスティングの日に集計し、別のテーブルに累積統計を格納するローデータベースを持っていますか?
また、どのタイプのデータベースにする必要がありますか? Innodb? MyISAM?
非常に興味深いアプローチです。もう1つの質問は、ページをリフレッシュしたり、リスティングに戻ってもう一度表示する人をどのように扱うことをおすすめしますか?今すぐipアドレスと日付はユニークなインデックスですので、そのインプレッションに対して一意のインデックスが見つかった場合やクリックすると、その人が同じリストを複数回見たことを示すカウンターフィールドが更新されます。それは大丈夫なアプローチだと思いますか?または、誰かが1日に複数回リストを閲覧したときに私は捨てるべきですか? – John
@ジョンこれはあなたの目的によって異なります。あるユーザーが同じリンクを2回クリックしたかどうかを知る必要がある場合は、更新する必要があります(テーブルに「カウンタ」フィールドがあるとします)。この場合、INSERT ... ON DUPLICATE KEY UPDATEステートメントを使用できます。しかし、あなたがこれを必要としない場合は、レコードを再度更新する必要はありません。この場合、INSERT IGNORE文を使用できます。 – itsmeee