Indeks jangkauan Geolite harus ASC, bukan Yugabyte DB baku HASH

PerformanceDaemonService
Dikirim
10 Agustus 2026 pukul 18.14 UTC
Penulis
Kamo
Commit
371b3bb

Pencarian IP adalah pemindaian jangkauan: WHERE network _ start < =? ORDER BY network _ start DESC LIMIT 1 Yagabita partisi yang memimpin kolom indeks oleh HASH kecuali mengatakan sebaliknya; CockroachDB indeks selalu range- memerintahkan. Jadi ketika skema dibangun kembali di Yugabyte teDB, idx _ geolite _ blocks _ range menjadi (network _ start HASH, network _ end ASC) dan berhenti melayani predikat itu sama sekali. Diukur: pemindaian penuh dari seluruh 5.820,022 baris, 8,814 meter per panggilan. Itu adalah single Hal yang paling mahal dalam basis data -- 3.96 JAM waktu eksekusi kumulatif di 455 panggilan, ditambah geo kedua bergabung pada 16,4 s rata-rata. Hal ini juga apa kelelahan SecurityService apos; s kolam koneksi. Dengan (jaringan _ start ASC, jaringan _ end ASC): 6,9 ms dan 0 baris dipindai. Bergabung query goes 16.421 ms - > 10,2 ms. Diperbaiki di dua tempat, karena meja dibangun kembali mingguan: - GeoLiteBlock @ Index, jadi skema baru dibangun benar. - DaemonService GeoLiteSyncService, yang pementasan + rename swap recreates indeks setiap Minggu dan akan diam-diam membatalkan ini.

Semua perubahan

Seperti apa yang Anda lihat pengiriman?

Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.

Mulai Bebas SelamanyaTampilkan Harga