Rumah > pangkalan data > tutorial mysql > Berapa Banyak Ruang Cakera Yang Nilai NULL Sebenarnya Digunakan dalam PostgreSQL?

Berapa Banyak Ruang Cakera Yang Nilai NULL Sebenarnya Digunakan dalam PostgreSQL?

Patricia Arquette
Lepaskan: 2024-12-25 22:18:17
asal
597 orang telah melayarinya

How Much Disk Space Do NULL Values Actually Consume in PostgreSQL?

Ruang Cakera Diperlukan untuk Menyimpan Nilai NULL dalam PostgreSQL

Apabila mentakrifkan lajur sebagai nullable smallint, andaian menyimpan nilai seperti 0 atau 1 memerlukan 2 bait . Walau bagaimanapun, persoalan timbul: berapa banyak ruang yang diduduki apabila lajur ditetapkan kepada NULL?

Pengoptimuman Storan

Dalam PostgreSQL, nilai NULL tidak memerlukan sebarang ruang storan khusus. Sebaliknya, peta bit digunakan untuk menunjukkan lajur dalam satu baris yang mengandungi nilai NULL. Untuk mana-mana baris dengan satu atau lebih null, peta bit dengan saiz yang sesuai (dibundarkan kepada bait terdekat) ditambahkan pada pengepala baris.

Pertimbangan Penjajaran Data

Penjajaran data memainkan peranan yang penting peranan dalam pengurusan ingatan. Dalam PostgreSQL, HeapTupleHeader (pengepala baris) menduduki 23 bait dan data lajur sentiasa diselaraskan dengan gandaan MAXALIGN (biasanya 8 bait). Akibatnya, satu bait padding wujud dalam pengepala baris yang boleh digunakan oleh peta bit nol.

Storan Percuma untuk Jadual Kecil

Disebabkan penjajaran data yang disebutkan di atas, jadual dengan ke atas hingga 8 lajur boleh menyimpan nilai NULL secara percuma. Melebihi had ini, bait MAXALIGN tambahan diperuntukkan untuk 64 lajur seterusnya dan seterusnya. Walau bagaimanapun, ruang tambahan ini hanya diduduki jika terdapat nilai nol sebenar dalam baris.

Lajur yang Digugurkan dan Peta Bit Null

Walaupun apabila lajur digugurkan daripada jadual, lajur itu terus menduduki sedikit dalam peta bit nol jika ia kekal disenaraikan dalam katalog sistem pg_attribute. Akibatnya, lajur yang digugurkan boleh menyumbang kepada ruang yang diperlukan untuk peta bit nol, yang boleh berterusan walaupun selepas operasi PENUH VACUUM.

Kesimpulan

Nilai NULL dalam PostgreSQL disimpan dengan cekap menggunakan mekanisme bitmap . Walau bagaimanapun, penjajaran data dan bilangan lajur dalam jadual boleh mempengaruhi jumlah ruang cakera yang diperlukan untuk menyimpan nilai ini. Memahami teknik pengoptimuman ini boleh membantu mengoptimumkan prestasi pangkalan data dan meminimumkan keperluan storan.

Atas ialah kandungan terperinci Berapa Banyak Ruang Cakera Yang Nilai NULL Sebenarnya Digunakan dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan