Database internally ma'lumotlarni Heap file ichiga saqlab boradi. Har bir row esa item (tuple) ko'rinishida bo'ladi. Heap file esa bir nechta pagelardan iborat bo'ladi va har bir page qanchadir miqdordagi (rowlar) ma'lumotlar saqlanadi. Ya'ni bizda bitta table bor degani bu bizda o'sha tabledagi ma'lumotlarni saqlash uchun heap file bor degani. Heap file ichida esa bir nechta page(block)lar ham bo'ladi.
Endi tasavvur qiling, kimda
age > 30 bo'lsa barcha ma'lumotlarni taqdim qilishini so'radik. PostgreSQL kimni yoshi nechidaligini bilmaydi, shuning uchun avval u barcha rowlarni RAMga olib keladi va list shakliga olib o'tadi (majoziy ma'noda list deyildi). Endi shu listdan har bir rowni birma-bir kirib tekshiradi va kimda age > 30 bo'lsa o'shalarni olib qaytaradi. Hop ammo bu yerda katta minus bor. Agar tasavvur qiling bizda rowlar soni millionlab bo'lsachi, ma'lumotlarni RAMga olib kelish juda qimmatga tushadi.Xulosa: Bu juda qisqacha ta'rif bo'ldi ammo ko'proq o'rganish uchun esa ushbu manbadan ko'rib chiqishingiz mumkin:
- storage page layout
@otabekswe