Mysql
 sql >> Database >  >> RDS >> Mysql

Progettazione di database per grandi quantità di dati

Dal momento che hai chiesto in che modo le grandi aziende (in genere) si avvicinano a questo:

Di solito hanno un dba (amministratore del database) che vive e respira il database utilizzato dall'azienda.

Ciò significa che hanno persone che sanno tutto, da come progettare le tabelle in modo ottimale, profilare e ottimizzare le query/indici/OS/server per sapere quale revisione del firmware del controller RAID può causare problemi al database.

Non parli molto del tipo di messa a punto che hai fatto, ad es.

  • Stai usando le tabelle MyISAM o InnoDB? Le loro prestazioni (e non ultime le loro caratteristiche) sono radicalmente diverse per i diversi carichi di lavoro.
  • Le tabelle sono indicizzate correttamente in base alle query eseguite?
  • esegui EXPLAIN su tutte le tue query - che ti aiuterà a identificare le chiavi che potrebbero essere aggiunte/rimosse, se vengono selezionate le chiavi corrette, confrontare le query (SQL ti lascia molto modo per ottenere le stesse cose)
  • Hai ottimizzato la query-cache? Per alcuni carichi di lavoro la cache delle query (attivata per impostazione predefinita) può causare un notevole rallentamento.
  • Quanta memoria ha la tua scatola e mysql è ottimizzato per trarne vantaggio?
  • Usi un file system e una configurazione raid orientata al database?
  • A volte è necessaria una piccola denormalizzazione.
  • Diversi prodotti di database avranno caratteristiche diverse, MySQL potrebbe essere incredibilmente veloce per alcuni worlkoad e lento per altri.