Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Come "ottimizzo" un Db mysql con php?

    Ho alcuni Db che contengono tabelle che arrivano ad avere alcuni MB di dati in eccesso. E questo lo verifico manualmente con Phpmyadmin... Da qui posso anche lanciare il comando (che poi risulta essere un "OPTIMIZE TABLE nometabella")

    Vorrei crearmi un file php da far eseguire al Crontab (sono root su server linux) la notte che sia in grado di "ottimizzare" alcuni Db (Db interi, non singole tabelle).

    E' giusto il concetto?

    Oppure il Mysql prevede qualche schedulazione propria da attivare in qualche modo?
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  2. #2
    Ciao.
    Forse la mia risposta è stupida, ma non puoi semplicemente fare un'ottimizzazione quando viene aperta una pagina fatta apposta e magari farla partire da qualunque pc a un'ora prestabilita con un'operazione pianificata?

    Forse però cerchi qualche cosa di più professionale...

    Ciao Andrea


    PS: ovviamente la procedura è una normale query "OPTIMIZE TABLE xyz"...
    ri-ciao

  3. #3
    So' eseguire un un file dal mio crontab... non è quello il problema...

    Vorrei sapere se:

    - posso ottimizzare il DB intero anzichè scrivere il nome di ogni singola tabella (non mi passerebbe più con certi db!!)

    - mysql prevede già (in quanto è "un server") un comando per schedulare unacosa del genere


    Grazie...
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  4. #4
    Mi spiace... allora non so come risponderti.

    A questo punto aspetto un'altra risposta pure io che sono curioso.
    Ciao e grazie!

  5. #5
    che io sappia mysql non prevede procedure interne, per quanto riguarda il crontab ti basta fare uno script che estrae l'elenco dei db con una

    codice:
    show databases;
    e poi iteri sulle varie tabelle con
    codice:
    show tables();
    non è così complicato
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  6. #6
    Originariamente inviato da king size slim
    che io sappia mysql non prevede procedure interne, per quanto riguarda il crontab ti basta fare uno script che estrae l'elenco dei db con una
    .. .... ...
    non è così complicato
    Non è complicato... ma è "macchinoso"... Mi chiedo il perchè non esista un comando tipo:
    OPTIMIZE DATABASE nome_database

    E poi quanto dura questo scritp? Il server quanto lavorerebbe?
    Lo chiedo perchè quando vado a fare l'operazione da Phpmyadmin sembra che impieghi "un po'" di tempo (a farsi una tabella)...
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  7. #7
    la durata dipende da quanto sono grandi i db e da quanto li deve ottimizzare... non dovrebbe impiegare uno sproposito comunque...

    se hai accesso via shell lo puoi fare da riga di comando come illustrato qua
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  8. #8
    Potresti mettere nel crontab:
    mysqlcheck --optimize --database nomedb -u root --password tuapassword

  9. #9
    Originariamente inviato da g.bechis
    mysqlcheck --optimize --database nomedb -u root --password tuapassword
    E "--all-databases" fa quello che penso io? (Cioè tutte le tabelle di tutti i db?)

    Sono andato a vedere nella guida... C'è scritto:
    If you use the --databases or --all-databases option to process all tables in one or more databases,
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

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 © 2025 vBulletin Solutions, Inc. All rights reserved.