Domanda

Ho una tabella con per colonne, uno smallint, un intero e due galleggianti. Memoria attesa per ciascuna riga è 14bytes (2 + 4 + 2 * 4). Ho circa 700.000 righe di mio tavolo. Ho impostato nessun chiavi primarie e indici. Mentre il tipo MyISAM dura circa 10 MB (media 15b per ogni riga), il tipo InnoDB richiede più di 30Mb (media di 44b). Che cosa mi manca qui? Sarebbe InnoDB hanno tanto di overhead per ogni riga, o sono il numero di stato tabella non ci si può fidare. Ho bisogno di memorizzare i dati che si svolgerà in GB, quindi necessità di decidere il tipo di archiviazione pesando parametri differenti.

È stato utile?

Soluzione

tabelle InnoDB non occupano più spazio rispetto a MyISAM. Sia che il trade-off tra l'uso di archiviazione e le funzionalità offerte da InnoDB (crash-sicurezza, le transazioni e le chiavi esterne) favorisce InnoDB è qualcosa che si dovrà decidere su. Avendo io stesso passato da MyISAM a InnoDB, io non ci tornerei.

vale la pena di notare che, se avete intenzione di andare avanti e usare InnoDB, sarà sicuramente vuole definire una chiave primaria (e idealmente uno corto). Ciò è dovuto al modo in cui si comporta InnoDB stoccaggio wrt e altri indici. Vedere questa pagina .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top