sql >> Database >  >> RDS >> Mysql

Hoe duur zijn JOIN's in SQL? En/of, wat is de afweging tussen prestaties en normalisatie?

De beste methode is om altijd begin met 3NF en overweeg dan alleen denormalisatie als u een specifiek prestatieprobleem vindt.

Prestaties zijn slechts één van de problemen waarmee u te maken krijgt met databases. Door gegevens te dupliceren, loopt u het risico inconsistente gegevens in uw database te laten staan, waardoor een van de kernprincipes van relationele databases, consistentie (de C in ACID ) .

Ja, meedoen heeft een prijs, daar kun je niet omheen. De kosten zijn echter meestal een stuk lager dan u zou denken, en kunnen vaak worden overspoeld door andere factoren, zoals netwerktransmissietijden. Door ervoor te zorgen dat de relevante kolommen correct worden geïndexeerd, kunt u veel van die kosten vermijden.

En onthoud de optimalisatiemantra:meet, don't guess! En meet in een productie-achtige omgeving. En houden periodiek meten (en afstemmen) - optimalisatie is slechts een set en vergeet de operatie als uw schema en gegevens nooit veranderen (zeer onwaarschijnlijk).

Reversie voor prestaties kan meestal veilig worden gemaakt door triggers te gebruiken om de consistentie te behouden. Dit vertraagt ​​natuurlijk je updates, maar kan je selecties nog steeds sneller laten verlopen.



  1. SQL Server Failover Cluster Installatie -2

  2. Hoe SCHEMA_NAME() werkt in SQL Server

  3. Regex str_replace

  4. Noodzaak om kolommen in rijen te converteren in MYSQL