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

ユーザー統計を更新するためのMysqlPHPCron

    MySQL 解決策:

    MySQLのeventが必要です 時間ベースで実行します。

    そして、updateを書くことをお勧めします 条件に基づいてステートメントを作成し、同じ手順を毎日実行するイベントスケジューラにリンクします。

    あなたは次のようにそれを行うことができます:。

    delimiter //
    drop event if exists event_scheduling_sample;
    
    create event if not exists event_scheduling_sample
    --  on schedule every 86400 second starts 00:00:00
    --  at timestamp( adddate( current_date, 1 ),'00:00:00' )
    --  on schedule every 1 day 
        --   starts current_timestamp 
        --   ends current_timestamp + interval '5' day
    --  on schedule every 1 day 
        --   starts current_timestamp 
        --   ends timestamp( current_date,'23:59:59' )
    
      on schedule every 1 day 
         starts timestamp( current_date + 1, '00:00:00' )
    
      comment 'event scheduling sample'
      do
        call db_name.procedure_name_that_updates_the_user_records();
    ;
    //
    delimiter ;
    

    参照 MySQL:CREATEEVENT構文

    イベントスケジューラのデフォルトの状態はDISABLEDです。
    次のステートメントのいずれかで有効にする必要があります。

    SET GLOBAL event_scheduler = ON;
    SET @@global.event_scheduler = ON;
    SET GLOBAL event_scheduler = 1;
    SET @@global.event_scheduler = 1;
    

    イベントスケジューラがオンの場合、イベントスケジューラスレッドはSHOW PROCESSLISTの出力に一覧表示されます。 デーモンプロセスとして、その状態は次のように表されます:

    mysql> SHOW PROCESSLIST\G
    *************************** 1. row ***************************
         Id: 1
       User: root
       Host: localhost
         db: NULL
    Command: Query
       Time: 0
      State: NULL
       Info: show processlist
    *************************** 2. row ***************************
         Id: 2
       User: event_scheduler
       Host: localhost
         db: NULL
    Command: Daemon
       Time: 3
      State: Waiting for next activation
       Info: NULL
    2 rows in set (0.00 sec)
    

    イベントスケジューラをオンに設定すると、機能していることがわかります。

    参照MySQLイベントスケジューラの構成




    1. Oracle SQL*Plusの使用方法

    2. 結果を選択してAUTO_INCREMENT値を変更する

    3. 選択ボックスにphpmysqlを入力します

    4. Google Cloud(GCP)にPostgreSQLバックアップを保存するためのヒント