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

MySQL:flere tabeller eller en tabel med mange kolonner?

Hver gang information er én-til-en (hver bruger har ét navn og adgangskode), så er det nok bedre at have det én tabel, da det reducerer antallet af joinforbindelser, som databasen skal gøre for at hente resultater. Jeg tror, ​​at nogle databaser har en grænse for antallet af kolonner pr. tabel, men jeg ville ikke bekymre mig om det i normale tilfælde, og du kan altid opdele det senere, hvis du har brug for det.

Hvis dataene er én-til-mange (hver bruger har tusindvis af rækker med brugsoplysninger), så bør de opdeles i separate tabeller for at reducere duplikerede data (duplikatdata spilder lagerplads, cacheplads og gør databasen sværere at vedligeholde ).

Du kan muligvis finde Wikipedia-artiklen om databasenormalisering interessant, da den diskuterer årsagerne til dette i dybden:

Databasenormalisering er processen med at organisere felterne og tabellerne i en relationel database for at minimere redundans og afhængighed. Normalisering involverer normalt opdeling af store tabeller i mindre (og mindre overflødige) tabeller og definition af relationer mellem dem. Målet er at isolere data, så tilføjelser, sletninger og ændringer af et felt kan foretages i kun én tabel og derefter udbredes gennem resten af ​​databasen via de definerede relationer.

Denormalisering er også noget at være opmærksom på, fordi der er tilfælde, hvor gentagelse af data er bedre (da det reducerer mængden af ​​arbejde, som databasen skal udføre ved læsning af data). Jeg vil varmt anbefale at gøre dine data så normaliserede som muligt for at starte ud og kun denormalisere, hvis du er opmærksom på ydeevneproblemer i specifikke forespørgsler.



  1. Sådan bruges LIKE i SQL

  2. Sådan e-mailes forespørgselsresultater som en vedhæftet fil i SQL Server (T-SQL)

  3. Hvordan binder man SQL-variabler i PHP?

  4. Kør en forespørgsel med en LIMIT/OFFSET og få også det samlede antal rækker