Java >> Java tutorial >  >> Tag >> SQL

Boganmeldelse:SQL Performance Explained

SQL Performance forklaret af Markus Winand er en bog, som har en meget fed slogan. Denne tagline er:

Alt, hvad udviklere har brug for at vide om SQL-ydeevne

Bogen har 192 sider, og den dækker alle større SQL-databaser (MySQL, Oracle, PostgreSQL og SQL-server). For at gøre tingene en smule mere interessante koncentrerer den sig om én ting:indeksering. For at være mere specifik dækker den kun den vigtigste indekstype:B-træet indeks.

Når vi tænker på den fede tagline, længden af ​​bogen og det faktum, at den dækker fire store SQL-databaser, er det åbenlyse spørgsmål dette:

Kan sådan en kort bog være nyttig for mig?

Lad os gå videre og finde ud af det.

Hvad kan du forvente

Bogen har otte kapitler og et appendiks, som er beskrevet i det følgende:

  • Kapitel 1:Anatomi af et indeks forklarer, hvordan databaseindekser fungerer. Dette kapitel giver en ren og forståelig beskrivelse af strukturen af ​​et indeks.
  • Kapitel 2:Where-klausulen koncentrerer sig om where-sætningen, som indeholder betingelserne for en SQL-forespørgsel. For at være mere specifik forklarer den, hvilken slags indekser vi skal oprette, så betingelserne for dine SQL-forespørgsler ikke forårsager ydeevneproblemer. Dette kapitel er bogens længste kapitel, og det indeholder en masse nyttige råd. For eksempel kunne jeg bruge rådene om sammenkædede indekser og funktionsbaserede indekser med det samme, og så store forbedringer i ydeevnen af ​​mine SQL-forespørgsler .
  • Kapitel 3:Ydeevne og skalerbarhed beskriver ydeevnepåvirkningerne af miljøændringer såsom datavolumen, systembelastning og "større" hardware. Dette kapitel afslører, at den "traditionelle visdom" med hensyn til ydeevnen af ​​relationelle databaser er mangelfuld og lærer dig, at den bedste måde at reducere responstiden på vores forespørgsel på er at bruge korrekt indeksering.
  • Kapitel 4:Join Operation beskriver de forskellige joinalgoritmer (nested loop, hash join og sort merge) og forklarer hvordan vi kan minimere responstiden for en databaseforespørgsel, der udfører en joinoperation. Dette kapitel identificerer også nogle af ydeevneproblemerne forårsaget af ORM-værktøjer og giver løsninger på disse problemer.
  • Kapitel 5:Klynger af data forklarer forskellen mellem en dataklynge og en computerklynge og beskriver, hvordan du kan forbedre ydeevnen ved at gruppere data til databaseindekser. Dette lyder måske lidt esoterisk, men du skal ikke være bange for den smarte titel. Kapitlet er velskrevet og meget praktisk.
  • Kapitel 6:Sortering og gruppering hjælper dig med at forbedre ydeevnen af ​​SQL-forespørgsler, der bruger sortering eller gruppering. Som altid er nøglen til succes at bruge indekser på den rigtige måde.
  • Kapitel 7:Delvise resultater taler om situationer, hvor du ikke har brug for alle resultater af din SQL-forespørgsel. Det hjælper dig med at få de N første forespørgselsresultater og at paginere forespørgselsresultaterne på en effektiv måde.
  • Kapitel 8:Ændring af data minder dig om, at indekser vil påvirke ydeevnen af ​​insert , opdatering og slet også forespørgsler. Dette kapitel beskriver, hvordan indekser påvirker ydeevnen af ​​disse forespørgsler og hjælper dig med at løse mulige ydeevneproblemer.
  • Bilag A:Udførelsesplaner beskriver, hvordan du kan hente og læse en eksekveringsplan, som er et væsentligt værktøj til at optimere ydeevnen af ​​dine databaseforespørgsler. Hvis du ikke er bekendt med dette værktøj, og du bruger en af ​​de dækkede databaser (MySQL, Oracle, PostgreSQL eller SQL Server), anbefaler at du også læser dette bilag.

Så kunne jeg lide denne bog? Lad os finde ud af det.

Få denne bog

Denne bog er selvudgivet, men du bør ikke lade det skræmme dig. Den er opbygget på en logisk måde, og teksten er meget let og behagelig at læse. Jeg hævder, at hvis denne bog ville blive tilbudt til et større forlag som Manning, O'Reilly eller Addison-Wesley, ville de være villige til at udgive den, som den er.

Jeg nød at læse denne bog, fordi

  • Dens råd er meget handlekraftige . Du kan anvende tipsene i hvert kapitel til at øve dig, når du læser det. For eksempel, da jeg fulgte rådene i kapitel to, så jeg store forbedringer i udførelsen af ​​mine SQL-forespørgsler (jeg havde ikke læst resten af ​​bogen endnu).
  • Den koncentrerer sig om én ting . Denne bog handler om korrekt indeksering. Det er det. Forfatteren besluttede at skrive om én ting, og oh boy, han nåede det! Denne bog er spækket med nyttige og værdifulde råd, som vil hjælpe med at gøre dine forespørgsler hurtigere, end du nogensinde kunne forestille dig.
  • Det beviser, at indeksering er en udviklingsopgave og giver dig den viden, du skal bruge for at fuldføre denne opgave. Jeg har bemærket, at ORM-rammerne har skabt en falsk følelse af sikkerhed blandt udviklere. Nogle udviklere tror, ​​at de ikke behøver at vide noget om relationelle databaser, fordi ORM-rammen tager sig af det. Faktisk intet kunne være længere fra sandheden , og jeg elsker det faktum, at denne bog mindede mig om det.

Med andre ord synes jeg, at enhver udvikler bør læse denne bog . Hvis du ikke har læst den endnu, bestil den lige nu! Du vil ikke blive skuffet.


No
Java tag