Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: Dati in eccesso MySql

  1. #1

    Dati in eccesso MySql

    Ciao a tutti, ho un DB composto da diverse tabelle, da phpmyadmin vedo che alcune di queste tabelle hanno dati in eccesso, che vuol dire?
    Il totale dei dati in eccesso è 2,8 KB e il peso complessivo del DB è 120,0 KB, che devo fare?

    Grazie a tutti.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Devi ottimizzare la tabella con questa query

    optimize table nome_tabella

  3. #3
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    Se non sbaglio, gia`in phpMyAdmin hai un tasto: "ottimizza tabella".

    Comunque come scrive il "GRANDE" nicola75ss e`la soluzione migliore.
    ¿Hasta la pasta?

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da polinet
    Se non sbaglio, gia`in phpMyAdmin hai un tasto: "ottimizza tabella".
    Probabile. Non ricordo, io mi trovo meglio con mysql yog e non uso pma da tempo.

    Comunque come scrive il "GRANDE" nicola75ss e`la soluzione migliore.
    Ma di cosa. Comunque grazie.

  5. #5
    Grazie ragazzi per le celeri risposte.
    C'è un modo per ricavare con una query le tabelle con i dati in eccesso?
    Invece di dover fare una query per ogni tabella (oppure posso fare optimize table nome_tabella , nome_tabella , nome_tabella.....?), non c'è qualcosa del tipo optimize table where dati _in_eccesso....
    o qualcosa del genere.

    Grazie mille ancora.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    show table status from nome_database where Data_free > 0

    trovi le tabelle del db con i dati in eccesso.

    Per l'ottimizzazione contemporanea non so se si possa fare con mysql.
    Con uno script php dovrebbe essere semplice.

  7. #7
    Mi è successa una cosa strana, stavo facendo delle prove con qualche query del tipo:

    $query = mysql_query("SHOW TABLE STATUS FROM nome_DB");
    while ($info=mysql_fetch_array($query)){
    echo $info["Name"]."
    ";
    echo $info["Data_free"]."
    ";
    }

    e con mio sommo stupore oggi la tabella con i dati in eccesso è solo una!!
    Può essere che MySql abbia un sistema automatico di ottimizzazione dei dati?

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da maurelio79
    e con mio sommo stupore oggi la tabella con i dati in eccesso è solo una!!
    Può essere che MySql abbia un sistema automatico di ottimizzazione dei dati?
    Non mi risulta

  9. #9
    Originariamente inviato da maurelio79
    Può essere che MySql abbia un sistema automatico di ottimizzazione dei dati?
    Quando si eseguono movimenti/variazioni di records in una tabella myisam, si possono creare spazi inutilizzati. Vuoi con delete/insert, ma anche con UPDATE. Questi spazi non sono "persi" ma vengono riutilizzati quando se ne presenta l'occasione.

    Facciamo un esempio:

    elimini il record 20 di un totale di 100. Il record viene fisicamente cancellato, ma lo spazio occupato dal record 20 rimane vuoto e la tabella risulta non ottimizzata (frammentata).

    Aggiungi un record 101 che occupa uno spazio tale da poter essere inserito al posto fisico del record 20 rimosso. Questo verra' inserito al posto del record 20 e la tabella risultera' nuovamente ottimizzata nello spazio occupato.

    Questo non avviene con le tabelle InnoDB data la diversa struttura utilizzata da questo motore

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da piero.mac
    Quando si eseguono movimenti/variazioni di records in una tabella myisam, si possono creare spazi inutilizzati. Vuoi con delete/insert, ma anche con UPDATE. Questi spazi non sono "persi" ma vengono riutilizzati quando se ne presenta l'occasione.

    Facciamo un esempio:

    elimini il record 20 di un totale di 100. Il record viene fisicamente cancellato, ma lo spazio occupato dal record 20 rimane vuoto e la tabella risulta non ottimizzata (frammentata).

    Aggiungi un record 101 che occupa uno spazio tale da poter essere inserito al posto fisico del record 20 rimosso. Questo verra' inserito al posto del record 20 e la tabella risultera' nuovamente ottimizzata nello spazio occupato.

    Questo non avviene con le tabelle InnoDB data la diversa struttura utilizzata da questo motore
    Ciao Piero.
    Grazie per la spiegazione. Sei stato chiarissimo.

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.