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

Databasedesign til meget store mængder data

Siden du spurgte om, hvor store virksomheder (generelt) griber dette an:

De har normalt en dba(databaseadministrator), som lever og ånder den database, virksomheden bruger.

Det betyder, at de har folk, der ved alt fra hvordan man designer tabellerne optimalt, profilerer og tuner forespørgsler/indekser/OS/server til at vide, hvilken firmwarerevision af RAID-controlleren, der kan forårsage problemer for databasen.

Du taler ikke meget om, hvilken slags tuning du har lavet, f.eks.

  • Bruger du MyISAM- eller InnoDB-tabeller? Deres ydeevne (og ikke mindst deres funktioner) er radikalt forskellige for forskellige arbejdsbelastninger.
  • Er tabellerne korrekt indekseret i henhold til de forespørgsler, du kører?
  • kør EXPLAIN på alle dine forespørgsler - hvilket vil hjælpe dig med at identificere nøgler, der kan tilføjes/fjernes, uanset om de rigtige nøgler er valgt, sammenligne forespørgsler (SQL giver dig mange måder at opnå de samme ting på)
  • Har du justeret query-cachen? For nogle arbejdsbelastninger kan forespørgselscachen (standard slået til) forårsage betydelig opbremsning.
  • Hvor meget hukommelse har din boks, og er mysql indstillet til at drage fordel af dette?
  • Bruger du et filsystem og et raid-opsætning rettet mod databasen?
  • Nogle gange er en lille denormalisering nødvendig.
  • Forskellige databaseprodukter vil have forskellige karakteristika, MySQL kan være lynhurtigt for nogle arbejdskoads og langsomt for andre.



  1. mysql_insert_id med opdatering

  2. Hvordan indstilles aktuel dato til MySQL-datokolonne fra Java?

  3. Hvordan virker GROUP BY?

  4. SQLAlchemy DELETE Fejl forårsaget af at have en både lazy-load OG en dynamisk version af det samme forhold