sql >> Databasteknik >  >> RDS >> Mysql

kopieringen till temptabellen tar lång tid

Tillfällig tabell kanske inte är det bästa alternativet beroende på vad du försöker uppnå... Det kan vara användbart att skapa en tabell med viss datakonsolidering för att begränsa omfattningen av nästa par förfrågningar, men det är sällan effektivt att göra det.

Dessutom kan temporära tabeller inte nås flera gånger, så en riktig tabell skulle behövas.

Skapandet av en tabell kräver diskskrivning, vilket är mycket mindre effektivt än ett rent urval i RAM-minnet. Med hjälp av cachningsmetoder kan du hämta resultatet av ett tidigare val mycket snabbt. Du kan använda det valet som FROM-delen av dina frågor för att göra det snabbare än att slå samman i en enorm databas. Men även då...

Vi utvecklar en datauppsättning på cirka 1To, stora frågor är fyndprodukter enligt användarnas rättigheter (kategori, butik,...) vi har försökt skapa en tabell för varje användare som pekar på produkterna han har rättigheterna till och använd sedan den tabellen för att hämta data utan att kräva stora förhållanden men det var fortfarande långsamt med SSD. Så vi dumpade bara enormt RAM-minne på servern och SELECT som vi skulle ha använt för att fylla de tillfälliga tabellerna körs för varje användare vid inloggning och används sedan som FROM och allt är perfekt.




  1. Anslut till Oracle DB med sqlplus

  2. Hur tilldelar man rankning till elever där de delar den högsta rankningen när deras poäng är lika?

  3. mysql om rad inte finns, ta standardvärde

  4. Hur bryter man TCP/IP-anslutningar med keepalive postgreSQL utan att ändra något i registret?