sql >> Databasteknik >  >> RDS >> Mysql

Bästa praxis med historisk data i MySQL-databas

Det är ett vanligt misstag att oroa sig för "stora" bord och prestanda. Om du kan använda index för att komma åt dina data spelar det ingen roll om du har 1000 av 1000000 poster - åtminstone inte så som du skulle kunna mäta. Designen du nämner är vanligt förekommande; det är en fantastisk design där tid är en viktig del av affärslogiken.

Om du till exempel vill veta vad priset på en vara var vid den tidpunkt då kunden gjorde beställningen, är det den absolut enklaste lösningen att kunna söka i produktposter där giltig_från order_date.

Detta är inte alltid fallet - om du behåller data bara för arkivändamål kan det vara mer meningsfullt att skapa arkivtabeller. Du måste dock vara säker på att tiden är på riktigt inte en del av affärslogiken, annars blir smärtan av att söka i flera tabeller betydande - tänk dig att behöva söka antingen i produkttabellen ELLER produktarkivtabellen varje gång du vill ta reda på priset på en produkt vid den tidpunkt då beställningen gjordes .



  1. Sorterar flera fält i MySQL

  2. SQL LIKE-operatör för nybörjare

  3. Välj bara några kolumner från en tabell på en LEFT JOIN

  4. Snabbaste sättet att dumpa Python-ordboksobjekt (dict) till en MySQL-tabell?