sql >> Databasteknik >  >> RDS >> Mysql

MySQL:flera tabeller eller en tabell med många kolumner?

Varje gång information är en-till-en (varje användare har ett namn och lösenord), är det förmodligen bättre att ha det en tabell, eftersom det minskar antalet kopplingar som databasen behöver göra för att hämta resultat. Jag tror att vissa databaser har en gräns för antalet kolumner per tabell, men jag skulle inte oroa mig för det i vanliga fall, och du kan alltid dela upp det senare om du behöver.

Om datan är en-till-många (varje användare har tusentals rader med användningsinformation), bör de delas upp i separata tabeller för att minska dubbletter av data (duplicerade data slösar bort lagringsutrymme, cacheutrymme och gör databasen svårare att underhålla ).

Du kanske hittar Wikipedia-artikeln om databasnormalisering intressant, eftersom den diskuterar orsakerna till detta på djupet:

Databasnormalisering är processen att organisera fälten och tabellerna i en relationsdatabas för att minimera redundans och beroende. Normalisering innebär vanligtvis att man delar upp stora tabeller i mindre (och mindre redundanta) tabeller och definierar relationer mellan dem. Målet är att isolera data så att tillägg, raderingar och ändringar av ett fält kan göras i bara en tabell och sedan spridas genom resten av databasen via de definierade relationerna.

Denormalisering är också något att vara medveten om, eftersom det finns fall där det är bättre att repetera data (eftersom det minskar mängden arbete som databasen behöver göra vid läsning av data). Jag rekommenderar starkt att du gör din data så normaliserad som möjligt till att börja med, och avnormalisera endast om du känner till prestandaproblem i specifika frågor.



  1. Hur man förbättrar replikeringsprestanda i ett MySQL- eller MariaDB Galera-kluster

  2. Minska dina databasvärdkostnader:DigitalOcean vs. AWS vs. Azure

  3. SLIPP TABELL OM FINNS i MySQL

  4. SELECTING med flera WHERE-villkor i samma kolumn