Rumah > pangkalan data > tutorial mysql > Mengapa Pertanyaan Hive COUNT(*) Saya Menunjukkan Lebih Sedikit Baris Daripada Pertanyaan Kiraan Bukan NULL Saya?

Mengapa Pertanyaan Hive COUNT(*) Saya Menunjukkan Lebih Sedikit Baris Daripada Pertanyaan Kiraan Bukan NULL Saya?

Patricia Arquette
Lepaskan: 2025-01-12 07:16:41
asal
218 orang telah melayarinya

Why Does My Hive COUNT(*) Query Show Fewer Rows Than My Non-NULL Count Query?

Perbezaan kiraan pertanyaan sarang: kiraan bukan kosong lebih besar daripada jumlah kiraan

Dalam Hive, kami memerhati fenomena menarik berkenaan pengiraan kiraan baris. Katakan terdapat jadual bernama mytable yang mengandungi medan bernama master_id. Apabila pertanyaan berikut dilaksanakan, jumlah bilangan baris yang diambil ialah 1,129,563:

<code class="language-sql">SELECT COUNT(*) AS c FROM mytable;</code>
Salin selepas log masuk

Walau bagaimanapun, apabila membuat pertanyaan untuk bilangan baris dengan nilai master_id yang tidak kosong, kiraan meningkat kepada 1,134,041:

<code class="language-sql">SELECT COUNT(*) AS c FROM mytable WHERE master_id IS NOT NULL;</code>
Salin selepas log masuk

Perbezaan ini berlaku kerana, secara lalai, pertanyaan tanpa klausa WHERE mungkin menggunakan statistik untuk menganggarkan bilangan baris. Untuk menyelesaikan masalah ini, parameter hive.compute.query.using.stats boleh ditetapkan kepada palsu untuk melumpuhkan anggaran statistik.

Sebagai alternatif, anda boleh mengira statistik jadual secara eksplisit menggunakan pernyataan ANALYZE TABLE atau tetapkan hive.stats.autogather kepada benar untuk mengumpul statistik apabila pukal mengimport data melalui operasi INSERT TULISAN. Ini akan memastikan hasil pertanyaan yang tepat dan konsisten serta mengelakkan keputusan yang tidak dijangka seperti ini.

Atas ialah kandungan terperinci Mengapa Pertanyaan Hive COUNT(*) Saya Menunjukkan Lebih Sedikit Baris Daripada Pertanyaan Kiraan Bukan NULL Saya?. 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