sql >> Databasteknik >  >> RDS >> Mysql

MySQL JOIN-prestanda på 1 stort bord och flera små bord

Eftersom det är ett "en till många"-förhållande skulle jag lagra dem i en separat tabell. SQL-serverfrågeoptimeraren (under huven) kommer att kunna analysera de 250 posterna tillräckligt snabbt för att det inte borde vara ett problem. Beroende på längden på värdena i den mindre tabellen kommer du också att spara lagringsutrymme genom att inte lagra dem hundratals miljoner extra gånger. Men om rapporteringsprestanda är av yttersta vikt kan du välja att lagra dem i en "tillplattad" tabell - som en datalagerstruktur, utan kopplingarna. Det kommer definitivt att gå snabbare, men du skulle offra lagringsutrymme och din snyggt strukturerade relationsdatabas.

Allt detta sagt, jag skulle gå med alternativ 1. Men du borde enkelt kunna lagra data i en ny tabell med formatet alternativ 2 - fråga mot båda - och sedan mäta prestandan själv. Jag förväntar mig att det inte kommer att bli någon större skillnad, särskilt med tanke på kapaciteten på dina mindre bord.



  1. PostgreSQL SKAPA TABELL

  2. Pivotera flera kolumner baserat på en kolumn i SQL Server

  3. Olika planer för identiska servrar

  4. Google Vis kommenterad tidslinje från SQL-databas med PHP JSON-problem