sql >> データベース >  >> RDS >> Mysql

最も閲覧されている機能データベースの実装

    次の表があります:1。ビュー2。 views_hourly_summary3。 views_daily_summary4​​。 views_monthly_summary5。 views_alltime_summary

    次の間隔でcronジョブを実行します:

    1. 1時間ごとに実行し、viewsテーブルからその時間のビューを事前に集計し、事前に集計された結果をviews_hourly_summaryテーブルに保存し、views_alltime_summaryテーブルも更新します

    2. 毎日の終わりに実行し、時間テーブルからその日のビューを事前に集計し、事前に集計された結果をviews_daily_summaryテーブルに保存します

    3. 毎月の終わりに実行し、時間テーブルからその日のビューを事前に集計し、事前に集計された結果をviews_daily_summaryテーブルに保存します

    次に、結果を取得するときは、次のように計算する必要があります。

    1. たとえば、過去4時間のビューをフェッチする場合、毎時テーブルから3時間のデータをフェッチし、残りのデータについては次のようにビューテーブルからフェッチします。

      item_id、sum(views)をviews_hourly_summaryからviewsとして選択します。ここで、concat(left(now()-interval 3 hour、14)、 '00:00')とconcat(left(now()、14)、'00:00'の間の時間)item_idでグループ化

      ユニオン

      item_id、count(1)をビューからのビューとして選択します。datetime(now()-間隔4時間)とconcat(left(now()-間隔3時間、14)、 '00:00')またはdatetime> concat(left( now()、14)、 '00:00')group by item_id



    1. JavaからMySQLへのアクセスの問題

    2. クエリ、ストアドプロシージャ、およびトリガー用のSQLServerパフォーマンスインジケーターの実装

    3. SQLiteの名前変更列

    4. Mysqlデータベースへの入力をサニタイズする関数