Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316

    MYSQL schedulazione ottimizzazione, è possibile senza chiudere il sito?

    Ho questa procedura:

    codice:
    CREATE PROCEDURE optimize_tables()
    BEGIN
        UPDATE configs SET value = "1" WHERE name = "db_maintenance"; 
    
    set @a=null,@c=null,@b=concat("show tables where",ifnull(concat("`Tables_in_",database(),"` like '",@c,"' and"),''),"  (@a:=concat_ws('`,`',@a, `Tables_in_",database(),"`))");
     
        Prepare `bd` from @b;
        EXECUTE `bd`;
        DEALLOCATE PREPARE `bd`;
     
        set @a:=concat('optimize table `',@a,'`');
        PREPARE `sql` FROM @a;
        EXECUTE `sql`;
        DEALLOCATE PREPARE `sql`;
     
        set @a=null,@b=null,@c=null;
        UPDATE configs SET `value` = "0" WHERE name = "db_maintenance";
        UPDATE configs SET `value` = NOW() WHERE name = "last_optimization";
    END$$
    DELIMITER ;
    che viene eseguita secondo lo scheduling:
    codice:
    CREATE EVENT optimizeDBEvent
    
        ON SCHEDULE EVERY 1 WEEK
    
         
    
        DO CALL optimize_tables();

    solo che, quando la eseguo inserisco nella tabella configs il campo maintenance a 1 e il sito diventa "out of service" per qualche minuto.

    Posso evitare di metterlo down e fare comunque l'ottimizzazione?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    up

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.