[OT] Mysql

Gianluca Sordiglioni inzet a yahoo.com
Mer 21 Maggio 2008 13:53:37 CEST


> > La prima cosa è ottimizzare le tabelle
> > mysqlcheck --optimize --all-databases
> 
> merda. l'ho fatto e ibdata1 e' raddoppiata invece di dimuire :(

Huston abbiamo un problema.
Il fatto è che l'optimize è molto "light", devi usare altre opzioni che
ricostruiscano anche i dati e non solo gli indici.
http://dev.mysql.com/doc/refman/4.1/en/table-maintenance.html
... e quindi Stage 3 o Stage 4.


> a questo punto inizierei a fare le cose come piacciono a me.
> iniziamo con: se da innodb a myisam l'applicativo non penso si
> incazzi, 
> no? pro e contro?

Incazzarsi no, nel senso che i BEGIN/COMMIT/ROLLBACK funzionano anche
su MyISAM per compatibilità, ma non hanno ovviamente effetto.
Se l'applicativo suppone alcune operazioni stile ACID, ovvero con
gestione della contemporaneità e della "vista" coerente dei dati,
allora i problemi che avrai potrebbero non essere immediatamente
evidenti e ti richiederebbero un esteso test in diverse situazioni per
saggiare l'affidabilità della tua scelta.
Poiché la maggior parte di quelli che usano MySQL usando le tabella
MyISAM, se hanno usato InnoDB ho il forte sospetto che ne abbiano
proprio bisogno -- a meno che, vista l'applicazione scritta con i piedi
come dicevi, sono talmente storditi da aver voluto le transazioni solo
perché "si fa così" con Java e altre loro menate.
In ogni caso io sconsiglio il cambio di struttura a meno che non vuoi
perderci un po di tempo.


> in ogni caso faro' un dump/restore e usero' innodb_file_per_table per
> 
> vedere subito chi esagera con il mio spazio e contemporaneamente
> potro' 
> eliminare quei 2.8G di ibdata1.

Uhm... sì, dipende come lo fai.
Meglio usare mysqldump che produce in output un file SQL così dopo
eventualmente ricostruisce tutto_ma_, attenzione, se la tabella è
corrotta potrebbe fare casini in esportazione.
Per la cronaca è il metodo migliore per cambiare struttura a database
giganteschi come il tuo; ALTER TABLE è più lento.

> Ah.. questa mia mail era per chiedere: abbandono innodb per myisam?

Vedi sopra. Ognuno ha il proprio specifico campo di utilizzo.
Se però l'applicazione è stata scritta con ACID in mente ( !!! he
he...) è difficile tornare indietro.

Ciao,
Gianluca



      ___________________________________ 
Scopri il Blog di Yahoo! Mail: trucchi, novità, consigli... e la tua opinione!
http://www.ymailblogit.com/blog/


Maggiori informazioni sulla lista Esperti