sql >> Database >  >> RDS >> Mysql

kopiëren naar tijdelijke tabel duurt lang

Tijdelijke tabel is misschien niet de beste optie, afhankelijk van wat u probeert te bereiken... Het kan handig zijn om een ​​tabel te maken met wat gegevensconsolidatie om het bereik van de volgende paar verzoeken te verkleinen, maar het is zelden efficiënt om dit te doen.

Tijdelijke tafels kunnen ook niet meerdere keren worden geopend, dus een echte tafel zou nodig zijn.

Het maken van een tabel vereist schijfschrijven, wat een stuk minder efficiënt is dan een pure selectie in het RAM. Met behulp van caching-methoden kunt u het resultaat van een eerdere selectie zeer snel ophalen. Je zou die selectie kunnen gebruiken als het FROM-gedeelte van je query's om het sneller te maken dan het samenvoegen in een enorme database. Maar zelfs dan...

We evolueren op een dataset van ongeveer 1To, grote zoekopdrachten zijn bevindingenproducten volgens de gebruikersrechten (categorie, winkel, ...) we hebben geprobeerd een tabel te maken voor elke gebruiker die verwijst naar de producten waar hij de rechten op heeft en gebruik vervolgens die tabel om de gegevens op te halen zonder dat er enorme omstandigheden nodig zijn, maar het was nog steeds traag met SSD. Dus we hebben gewoon enorm veel RAM op de server gedumpt en de SELECT die we zouden hebben gebruikt om de tijdelijke tabellen te vullen, wordt uitgevoerd voor elke gebruiker bij het inloggen, en vervolgens gebruikt als FROM en alles is perfect.




  1. Proberen te controleren of de gebruikersnaam al bestaat in de MySQL-database met behulp van PHP

  2. Hoe selecteer ik de meest recente invoer in mysql?

  3. dokwerker. MySQL-afbeelding. Kan mijn.cnf-bestand niet wijzigen

  4. MariaDB 10.6 en NextCloud:COMPRESSED Row is standaard alleen-lezen