sql >> Database teknologi >  >> RDS >> Mysql

1 meget stort bord eller 3 stort bord? MySQL ydeevne

Dette er faktisk en diskussion om Singe - Tabel - Arv vs. Tabel Per Klasse Arv og gå glip af samlet arv. Førstnævnte er relateret til metode A, den anden til din metode B og metode C ville være som at have alle ID'er af dine indlæg i én tabel og udskyde specifikke attributter for gruppe eller bruger - indlæg ij til forskellige tabeller. Mens du altid har en stor tabel har sine negative virkninger relateret til fulde scanninger af tabellen. tilgangen til opdeling af tabeller har også sin egen. Det afhænger af hvor ofte din applikation skal have adgang til hele listen af ​​indlæg vs kun at hente bestemte indlægstyper. En anden overvejelse du bør tage i betragtning er datapartitionering, som kan gøres med MySQL eller Oracle Database f.eks. som er en måde at organisere dine data i tabeller givet muligheder for informations livscyklus (hvilke data tilgås hvornår og hvor ofte, kan en del af dem flyttes og komprimeres, hvilket reducerer databasestørrelsen og øger hastigheden for adgang til venstre del af dataene i tabel), som dybest set er opdelt i tre overordnede teknikker:Rækkebaseret partitionering, listebaseret partitionering og hash-baseret partitionering. Andre funktioner, der ikke er så almindeligt understøttede i forbindelse med reduktion af tabelstørrelser, er dem, der beskæftiger sig med indsættelser med tidsstempel, der automatisk ugyldiggør de indsatte data efter en en vis tidsperiode er udløbet. Det, der faktisk er en vigtig beslutning om applikationsdesign og kan øge ydeevnen, er at skelne mellem læse- og skriveadgange til databasen på applikationsniveau. Overvej en MySQL - Backend:Fordi skriveadgang naturligvis er mere kritisk for databasens ydeevne, så læser du kunne opsætte en MySQL - Instance til at skrive til databasen og en anden som replikant o f dette for læseadgangene, selvom dette også kan diskuteres, hovedsageligt når det kommer til RDT (real time decisions), hvor absolut konsistens af data på et givet tidspunkt er et must. Brug af objektpuljer som et lag mellem din applikation og databasen er en teknik til at forbedre applikationens ydeevne, selvom jeg endnu ikke kender til eksisterende løsninger i PHP-verdenen. Oracle Hot Cache er et ret sofistikeret eksempel på det. Du kan dog bygge din egen en implementeret oven på en in-hukommelsesdatabase eller bruge memcache.




  1. Udfør en orakelfunktion, der returnerer en referencemarkør i C#

  2. videregive heltalsarray til oracle-procedure med c#

  3. Postgress fejl- bundle installation

  4. Sådan konverteres tidszonen i MySQL