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.
Előző változat mindkét oldalonElőző változatKövetkező változat | Előző változat | ||
it:postgres_user_group:cikkek:miert_ir_az_adatbazis_hogyha_olvas [2023/04/20 23:31] – [Statisztikagyűjtés] rblst | it: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 | + | Első ránézésre |
===== Klienseket kiszolgáló folyamatok ===== | ===== Klienseket kiszolgáló folyamatok ===== | ||
Sor 17: | Sor 17: | ||
Az adatbázistáblák minden sorához tárolja a rendszer, hogy melyik tranzakció hozta létre, és melyik módosította az adott sort. Minden egyes sorhoz tárolódnak továbbá ún. hint bitek, amelyek azt jelzik, hogy az adott sort létrehozó vagy módosító tranzakció lezárult-e már committal vagy aborttal. Ez az információ ahhoz szükséges, | Az adatbázistáblák minden sorához tárolja a rendszer, hogy melyik tranzakció hozta létre, és melyik módosította az adott sort. Minden egyes sorhoz tárolódnak továbbá ún. hint bitek, amelyek azt jelzik, hogy az adott sort létrehozó vagy módosító tranzakció lezárult-e már committal vagy aborttal. Ez az információ ahhoz szükséges, | ||
- | Ha egy táblát módosító | + | Ha egy tranzakció véget ér, a tranzakció státusza (commit vagy abort) |
- | A hint bitek frissítése úgy történik, hogy egy módosított adatblokkokból történő első olvasás során a commit logban lévő információ beíródik | + | A hint bitek frissítése úgy történik, hogy egy módosított adatblokkokból történő első olvasás során a commit logban lévő információ beíródik |
Tehát ezúttal is azzal szembesülünk, | Tehát ezúttal is azzal szembesülünk, | ||
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/ | Különösen adattárházakból történő lekérdezés esetén jelenthet komolyabb extra I/ | ||
===== Konklúzió ===== | ===== Konklúzió ===== | ||
- | Remélem, a fenti példákkal sikerült | + | Remélem, a fenti példákkal sikerült rámutatni arra, hogy a PostgreSQL egy összetett |
it/postgres_user_group/cikkek/miert_ir_az_adatbazis_hogyha_olvas.1682033473.txt.gz · Utolsó módosítás: 2023/04/20 23:31 szerkesztette: rblst