sql >> Databasteknik >  >> RDS >> Mysql

Enhetsattributvärdemodell - Prestandaalternativ?

Först , ibland gör den här modellen det mycket lättare att söka efter data. Jag ställde en fråga för några dagar sedan här och några användare föreslog varför jag inte ändrade min modell till en 1NF-form för att göra det lättare att söka efter data. Först när de insåg att jag hade fastnat för den här designen gav de några svar på frågan. Poängen är att jag hade turen att bara ha 12 kolumner att summera; Annars, om min tabell innehöll 300 kolumner, kanske ingen användare brydde sig om att skriva en fråga för det problemet. :-)

Andra , ibland är implementeringen av denna design lättare på grund av vissa begränsningar som naturligt införs av databaser. Om din meta_key värden innehåller några långa värden som är större än 30 tecken, antingen måste du förkorta värdena och göra mappningen någonstans eller så är detta möjligen det enda alternativet du kan ha.

Äntligen , prestanda är mycket viktigt; det är sant. Men å andra sidan finns det vissa tekniker du kan använda för att förbättra prestandan; genom att skapa korrekta index, partitioneringstabeller och så vidare.

I det här fallet är bordsstorlekarna mycket små. Så om inte dina frågor är mycket komplicerade som att ha tunga beräkningar och komplicerade sammanfogningar och aggregering, och om applikationen inte är känslig för små tidsfraktioner, antar jag att du inte skulle lida av prestanda om du använde den här modellen.

I slutet , om du fortfarande är för mycket bekymrad över prestandan skulle jag föreslå att du skapar båda modellerna, fyller i dem med slumpmässiga eller riktiga data och analyserar plankostnaderna för att se vilken modell som passar dina behov bättre.



  1. Upptäck OS Sleep and Wake Up-händelser i Java

  2. Hur man exporterar / dumpar en MySql-tabell till en textfil inklusive fältnamnen (aka rubriker eller kolumnnamn)

  3. skicka heltalsarray till oracle-proceduren med c#

  4. MySQL Välj senaste månadsdata efter aktuell_tidsstämpel