Ho usato mysql prima, ma non capisco come funziona internamente. Qualcuno può indicarmi una buona risorsa su ciò che la rappresentazione interna dei dati sul disco sembra che potrebbe anche discutere su come le ricerche vengono cercate e accedute così velocemente? Ancora meglio, qualcuno può presentare una spiegazione succinta di alto livello?come sono memorizzati i dati mysql sul disco?
risposta
MySQL Server utilizza lo spazio su disco in vari modi, in primo luogo per le directory ei file che si trovano sotto un unico luogo conosciuto come directory dei dati del server. Il server utilizza la sua directory di dati per memorizzare tutti i seguenti dati:
- Directory di database. Ogni database corrisponde a una singola directory nella directory dei dati, indipendentemente dai tipi di tabelle che si creano nel database. Ad esempio, un determinato database è rappresentato da una directory, indipendentemente dal fatto che contenga tabelle MyISAM, tabelle InnoDB o un mix dei due.
- file in formato tabella (file .frm) che contengono una descrizione della struttura di tabella. Ogni tabella ha il proprio file .frm, che si trova nella directory del database appropriata. Questo è vero indipendentemente dal motore di archiviazione che gestisce la tabella.
- I file di dati e indici vengono creati per ogni tavolo da alcuni motori di stoccaggio e collocati nella directory del database appropriata. Ad esempio, il motore di archiviazione MyISAM crea un file di dati e un file di indice per ogni tabella.
- motore di storage InnoDB Il dispone di un proprio spazio tabelle e file di log. Lo spazio tabella contiene dati e informazioni sugli indici per tutte le tabelle InnoDB, nonché i registri di annullamento necessari se è necessario eseguire il rollback di una transazione. I file di registro registrano le informazioni sulle transazioni impegnate e vengono utilizzati per garantire che non si verifichi alcuna perdita di dati. Per impostazione predefinita, lo spazio tabella e i file di registro si trovano nella directory dei dati. Il file tablespace predefinito è denominato ibdata1 ei file di registro predefiniti sono denominati ib_logfile0 e ib_logfile1. (È anche possibile configurare InnoDB per utilizzare un file tablespace per tabella. In questo caso, InnoDB crea il file tablespace per una data tabella nella directory del database della tabella.)
- File di registro del server e file di stato. Questi file contengono informazioni sulle istruzioni che il server ha elaborato. I registri vengono utilizzati per la replica e il recupero dei dati, per ottenere informazioni da utilizzare per ottimizzare le prestazioni delle query e per determinare se si verificano problemi operativi.
Ottima risposta con molte informazioni silenziose, hai scritto tutto dalla tua memoria? Se possibile, aggiungi alcuni riferimenti per la ricerca futura. – rekire
Ho trovato queste informazioni mentre stavo facendo una ricerca sullo storage MySQL. Questo è stato menzionato in uno dei blog DBA MySQL –
@PeterVenderberghe Buono ... –
- 1. Dove sono memorizzati i dati di stringa?
- 2. Perché Spark shuffle memorizza i dati intermedi sul disco?
- 3. Script per salvare i dati varbinary sul disco
- 4. Quanti dati possono essere memorizzati in MySQL?
- 5. In Node.js, quando i dati sono memorizzati nell'heap?
- 6. Come vengono memorizzati i dati in lucene
- 7. Come vengono memorizzati i dati negli appunti di Windows
- 8. I caratteri Unicode (greci) sono memorizzati nel database come "??????"
- 9. Dove sono memorizzati i segnalibri Eclipse?
- 10. Dove sono memorizzati i server registrati?
- 11. Dove sono memorizzati i certificati SSL?
- 12. Dove sono memorizzati i rami Git?
- 13. Ricerca di idee sulla memorizzazione dei dati sul disco locale
- 14. Miglior strategia di salvataggio dei dati principali (quando salvare i dati sul disco)
- 15. Database blob vs File memorizzati su disco
- 16. Come condividere i dati tra i processi python senza scrivere sul disco
- 17. Dove sono memorizzati i messaggi flash?
- 18. Dove sono memorizzati i cookie di UIWebView?
- 19. Dove sono memorizzati i metodi in memoria?
- 20. Dove i cookie sono memorizzati nel sistema?
- 21. Dove sono memorizzati i "certificati" in Firefox?
- 22. Come vengono memorizzati i dati in un file immagine
- 23. Android: dove sono memorizzati i file di database?
- 24. Dove/come vengono memorizzati i dati di previsione delle diramazioni?
- 25. Come controllare i dati di controllo della versione memorizzati in mysql
- 26. Come i riferimenti sono memorizzati internamente in C++?
- 27. Cursori con postgres, dove sono memorizzati i dati e quante chiamate al DB
- 28. funzioni ricorsive memorizzati in MySQL
- 29. Sessioni di flaconi, dove sono memorizzati i cookie?
- 30. opzioni SET .... dove sono memorizzati
Questa domanda merita una buona ricerca, non solo una sessione di domande, potrebbe essere più adatta a http://dba.stackexchange.com –
Il libro "Pro MySQL" spiega questo processo abbastanza accuratamente. – Marty
IMHO questo dipende dal motore di archiviazione che si sta utilizzando le strutture di MyISSAM e InnoDB sono tranquille diverso. Comunque AFIK usa tutti gli alberi D o KD (non sono sicuro del K in questo momento). – rekire