Jag har en databas med väldigt många poster där främst de nyaste är aktuella. Jag funderade därför på att lägga till ett fält till tabellen som heter typ "bin" som kan ha värdet new eller old. På så sätt skulle jag kunna sätta "WHERE bin='new'" när jag endast vill leta bland nya poster.
Min fråga är om jag tjänar något på detta öht, om sökningen går snabbare? Eller om jag måste dela upp det i två skiljda tabeller istället. Då blir ju överflyttningen lite krångligare men den görs inte lika ofta som sökningen. Eller är allt detta onödigt? Det handlar om kanske 100 000 rader totalt där kanske 1000 skulle läggas i "new".
Nu är jag ingen expert på SQL eller databaser i allmänhet men det känns verkligen helt fel att göra en sådan lösning. En databas är till för att hantera data och stora mängder data! Generellt sett iaf.
På förra jobbet hade vi relationsdatabaser som innehöll vissa tabeller med miljontals poster och det fungerade finemang utan några new/old kolumner som du funderar på. De tabeller jag jobbade mot hade dock inte så många utan där rörde det sig om 50k rader bara. :)
Kloka indexeringar gör världens skillnad, det gäller att ha lite koll på vad man sysslar med. :)
Eventuellt skulle du kunna flytta över gamla poster till en sorts arkiv-tabell vid ett angivet klockslag eller datum, men jag är skeptisk till en sådan lösning. Det finns tillfällen då detta är lämligt men jag vet inte riktigt om det är bäst i ditt fall. Vad gäller din fråga mer konkret, hur många poster är många poster, hur intensiv är belastningen?
Index låter som en bra lösning 100000 poster är ingen storlek i detta sammanhang.
Om du aldrig vill åt de gamla kan man tänka sig att flytta över dvs. man behåller "en levande kärna"
Beroende på hur poster ramlar in och ut kan man spara varje post i två tabeller, så fort den inte är ny längre raderas den i "Nytabellen"
131 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe