Felhasználói eszközök

Eszközök a webhelyen


it:postgres_user_group:cikkek:miert_ir_az_adatbazis_hogyha_olvas

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalonElőző változat
Következő változat
Előző változat
it:postgres_user_group:cikkek:miert_ir_az_adatbazis_hogyha_olvas [2023/04/20 23:38] – [Konklúzió] rblstit:postgres_user_group:cikkek:miert_ir_az_adatbazis_hogyha_olvas [2023/04/20 23:53] (aktuális) – [Konklúzió] rblst
Sor 1: Sor 1:
 ====== Miért ír az adatbázis, hogyha csak olvasunk belőle? ====== ====== Miért ír az adatbázis, hogyha csak olvasunk belőle? ======
-Első olvasatra talán ellentmondásosnak tűnik a cím, de amint e rövid írásból remélhetőleg kiderül, lekérdezések során a PostgreSQL elkerülhetetlenül ír is az adatbázisba. A kiírt adatmennyiség általában elenyésző, de lehet igen jelentős is. Nézzünk meg néhány példát.+Első ránézésre talán ellentmondásosnak tűnik a cím, de amint e rövid írásból remélhetőleg kiderül, lekérdezések során a PostgreSQL elkerülhetetlenül ír is az adatbázisba. A kiírt adatmennyiség általában elenyésző, de lehet igen jelentős is. Nézzünk meg néhány példát.
 ===== Klienseket kiszolgáló folyamatok ===== ===== Klienseket kiszolgáló folyamatok =====
  
Sor 26: Sor 26:
 Az esetleges adatkorrupció korai detektálása érdekében érdemes bekapcsolni azt a funkciót, hogy a PostgreSQL számítson ellenőrzőösszeget az egyes adatblokkokra (data checksums). A data checksums opció bekapcsolása viszont azzal is jár, hogy amikor egy checkpoint művelet után egy adatblokk először módosul, akkor beíródik a blokk teljes tartalma a WAL-ba (Write-Ahead Log, avagy tranzakciós napló, amely minden módosítást rögzít).  Az esetleges adatkorrupció korai detektálása érdekében érdemes bekapcsolni azt a funkciót, hogy a PostgreSQL számítson ellenőrzőösszeget az egyes adatblokkokra (data checksums). A data checksums opció bekapcsolása viszont azzal is jár, hogy amikor egy checkpoint művelet után egy adatblokk először módosul, akkor beíródik a blokk teljes tartalma a WAL-ba (Write-Ahead Log, avagy tranzakciós napló, amely minden módosítást rögzít). 
  
-Ez a naplózás megtörténik akkor is, ha csak a hint bitek változtak meg a blokkban, hiszen a bitek megváltozása miatt is változik a blokk ellenőrző-összege. Ez tehát azt jelenti, hogy minden olyan blokk első olvasása, amely a legutolsó checkpoint óta változott, WAL-fájlba írást fog eredményezni.+Ez a naplózás megtörténik akkor is, ha csak a hint bitek változtak meg a blokkban, hiszen a bitek megváltozása miatt is változik a blokk ellenőrzőösszege. Ez tehát azt jelenti, hogy minden olyan blokk első olvasása, amely a legutolsó checkpoint óta változott, WAL-fájlba írást fog eredményezni.
  
 Különösen adattárházakból történő lekérdezés esetén jelenthet komolyabb extra I/O-terhelést ez a működés, hiszen noha csak olvassuk az adatbázist, a legutolsó betöltés óta most olvassuk el először a módosult blokkokat, ami tekintélyes számú írási műveletet eredményezhet. Különösen adattárházakból történő lekérdezés esetén jelenthet komolyabb extra I/O-terhelést ez a működés, hiszen noha csak olvassuk az adatbázist, a legutolsó betöltés óta most olvassuk el először a módosult blokkokat, ami tekintélyes számú írási műveletet eredményezhet.
  
 ===== Konklúzió ===== ===== Konklúzió =====
-Remélem, a fenti példákkal sikerült rámutatni arra, hogy a PostgreSQL egy összetett rendszer, és a címben feltett kérdés nem is mindig érdektelen. Szívesen látunk kommentben további példákat arra, amikor az adatbázis ír is, amikor csak olvasunk belőle.+Remélem, a fenti példákkal sikerült rámutatni arra, hogy a PostgreSQL egy összetett rendszer, és a címben feltett kérdés nem is mindig érdektelen. Szívesen látunk kommentben további példákat arra, amikor az adatbázis ír is, pedig csak olvasunk belőle.
    
  
  
it/postgres_user_group/cikkek/miert_ir_az_adatbazis_hogyha_olvas.1682033892.txt.gz · Utolsó módosítás: 2023/04/20 23:38 szerkesztette: rblst