sql >> Database >  >> RDS >> Mysql

Best practices met historische gegevens in de MySQL-database

Het is een veelgemaakte fout om je zorgen te maken over "grote" tabellen en prestaties. Als u indexen kunt gebruiken om toegang te krijgen tot uw gegevens, maakt het niet echt uit of u 1000 of 1000000 records heeft - althans niet zo als u zou kunnen meten. Het ontwerp dat u noemt, wordt veel gebruikt; het is een geweldig ontwerp waarbij tijd een belangrijk onderdeel is van de bedrijfslogica.

Als u bijvoorbeeld wilt weten wat de prijs van een artikel was op het moment dat de klant de bestelling plaatste, is het verreweg de gemakkelijkste oplossing om productrecords te kunnen doorzoeken waarbij valid_from order_date is.

Dit is niet altijd het geval - als u de gegevens alleen voor archiefdoeleinden bijhoudt, kan het logischer zijn om archieftabellen te maken. U moet er echter zeker van zijn dat de tijd echt is maakt geen deel uit van de bedrijfslogica, anders zal de pijn van het zoeken in meerdere tabellen aanzienlijk zijn - stel u voor dat u ofwel de producttabel OF de product_archieftabel moet doorzoeken telkens wanneer u de prijs van een product wilt weten op het moment dat de bestelling is geplaatst .



  1. Ordenen op volgorde van waarden in een SQL IN()-clausule

  2. is er een PRODUCT-functie zoals er een SOM-functie is in Oracle SQL?

  3. hoe op te lossen Algemene fout:2014 Kan query's niet uitvoeren terwijl andere niet-gebufferde query's actief zijn. met behulp van PDO-verbinding

  4. Query invoegen om rijen in MySQL in te voegen