è vero che per le tabelle innodb il comando optimize table non funziona come per le tabelle myisam?
è vero che per le tabelle innodb il comando optimize table non funziona come per le tabelle myisam?
This is a time in my life where everything is falling apart and at the same time it's all coming together
That's Me
Non e' manco ammesso. Le tabelle InnoDB non "soffrono" della frammentazione.Originariamente inviato da suicide_machine
è vero che per le tabelle innodb il comando optimize table non funziona come per le tabelle myisam?
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Ma ho capito male o questo è vero a partire dalla versione 4.1.3? :master:Originariamente inviato da piero.mac
Non e' manco ammesso. Le tabelle InnoDB non "soffrono" della frammentazione.
![]()
Da vedere sul manuale. Non ho mai dovuto fare un OPTIMIZE TABLE sulle inno e quindi non saprei se prima era ammesso o meno. Per definizione le innoDB hanno solo il file .frm ed i dati tutti in un unico file, piu' alcuni file di log per ricostruire in caso di corruzione della tabella.... quindi la frammentazione di una tabella e' impossibile.Originariamente inviato da VaLvOnAuTa
Ma ho capito male o questo è vero a partire dalla versione 4.1.3? :master:
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
L'ho chiesto proprio perchè sono andato a vedere il manuale, dal quale cito testualmenteOriginariamente inviato da piero.mac
Da vedere sul manuale. Non ho mai dovuto fare un OPTIMIZE TABLE sulle inno e quindi non saprei se prima era ammesso o meno. Per definizione le innoDB hanno solo il file .frm ed i dati tutti in un unico file, piu' alcuni file di log per ricostruire in caso di corruzione della tabella.... quindi la frammentazione di una tabella e' impossibile.
![]()
" For the moment, OPTIMIZE TABLE works only on MyISAM, BDB and InnoDB tables."
Però poi dice
"For BDB tables, OPTIMIZE TABLE currently is mapped to ANALYZE TABLE. That was also the case for InnoDB tables before MySQL 4.1.3; starting from this version it is mapped to ALTER TABLE, which rebuilds the table."
Quindi non ho capito se è possibile ottimizzare il file dei dati o si ottimizzano automaticamente solo le chiavi.
P.S. domandina:
Ho mysql su un server della lan. Il server è mappato ogni sera da un software che backuppa alcune cartelle (stabilite dall'amministratore) su un nastro magnetico.
In caso di problemi sulla macchina, per ripristinare il database memorizzato sul nastro, posso ripristinare il buon vecchio ibdata1 + i file .frm + i file di log o ho perso tutto?
Non ho studiato le InnoDB e nel particolare non so come funzionano esattamente.
I dati sono tutti nei file che citi + il frm della tabella. Se ripristini quei file ripristini tutte le tabelle innodb del server e non solo la tua specifica.
Se fai un backup della tabella estrai i dati della tua. In caso di ripristino del backup perdi anche il log relativo, e giustamente perche' non avrebbe senso. I log servono per ripristinare i dati della tabella in caso di corruzione. Se fai il restore di un backup si suppone tiu voglia ripartire da "quel" punto.
Mi dilungo per centrare la risposta....
Se salvi tutto il direttorio dei data come file e non come backup ripristini tutte le tabelle.
tips & tricks... Se ti dovesse succede perdite di dati vai nel my.ini e cambia il path dei data. Metti i file recuperati nel nuovo path ed avrai il tuo db integro come al momento del salvataggio. Estrai il backup della tabella interessata. Torni dov'eri prima col path data, droppi la tabella scassata e ripristini con quella salvata.
Poi do un'occhiata al manuale... anche se mi pare che un ALTER TABLE ottimizzi la tabella anche nelle MyISAM.
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
http://dev.mysql.com/doc/mysql/en/backing-up.html
If your database gets corrupted or your disk fails, you have to do the recovery from a backup. In the case of corruption, you should first find a backup that is not corrupted. After restoring the base backup, do the recovery from the binary log files.
In some cases of database corruption it is enough just to dump, drop, and re-create one or a few corrupt tables. You can use the CHECK TABLE SQL statement to check whether a table is corrupt, although CHECK TABLE naturally cannot detect every possible kind of corruption. You can use innodb_tablespace_monitor to check the integrity of the file space management inside the tablespace files.
In some cases, apparent database page corruption is actually due to the operating system corrupting its own file cache, and the data on disk may be okay. It is best first to try restarting your computer. It may eliminate errors that appeared to be database page corruption.![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Beh il backup mi serve anche nel caso si fonda l'hd
In quel caso ho bisogno eccome di tutte le tabelle innodb (anche se sul server ho solo due database) e dei relativi log file.
Comunque grazie.. anche se spero di non aver bisogno di fare alcun backup![]()
Non ho mai avuto problemi con le innodb se non di spazio occupato. Forse anche per questo dopo un primo allineamento delle variabili si fanno dimenticare e non si approfondiscono. E sono veramente tante queste variabili. Sicuramente si potrebbe ottimizzare molte cose.Originariamente inviato da VaLvOnAuTa
Beh il backup mi serve anche nel caso si fonda l'hd
In quel caso ho bisogno eccome di tutte le tabelle innodb (anche se sul server ho solo due database) e dei relativi log file.
Comunque grazie.. anche se spero di non aver bisogno di fare alcun backup![]()
Ma sai com'e' la legge di murphi dice... Funziona? tieni le mani in tasca.![]()
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.