Ana Sayfa

PostgreSQL İçin Hızlı LIKE Sorguları: Biscuit İndeksi Tanıtıldı

1 dk okuma

Biscuit, PostgreSQL veritabanları için özel olarak tasarlanmış, LIKE ve ILIKE sorgularında desen eşleştirmeyi hızlandırmayı amaçlayan yeni bir indeks erişim yöntemidir (IAM). Özellikle joker karakter ağırlıklı sorgularda trigram indekslerinin yeniden kontrol yükünü ortadan kaldırarak önemli performans iyileştirmeleri sunar. Adı "Bitmap Indexed Searching with Comprehensive Union and Intersection Techniques" ifadesinin kısaltmasıdır ve çok sütunlu aramalar için yerel destek sağlar.

Geliştiriciler, Biscuit'in taşınabilirliğini artırmak amacıyla CRoaring bitmap desteği için Makefile algılama mantığını iyileştirdi. Ayrıca, hata ayıklama ve dağıtım doğrulaması için Biscuit'in derleme zamanı yapılandırmasını incelemeye yarayan biscuit_version(), biscuit_build_info(), biscuit_build_info_json() gibi yeni SQL fonksiyonları eklendi. CRoaring bitmap desteğinin varlığını kontrol etmek için biscuit_has_roaring() ve sürümünü öğrenmek için biscuit_roaring_version() fonksiyonları da kullanıma sunuldu. Ek olarak, Biscuit'in durumu ve yapılandırmasına hızlıca göz atmak için biscuit_status adında tek satırlık bir tanısal görünüm oluşturuldu.

Kurulumu oldukça basittir; depoyu klonlayıp make ve sudo make install komutlarıyla derleyip kurduktan sonra CREATE EXTENSION biscuit; komutuyla PostgreSQL veritabanında etkinleştirilebilir. Kullanımı da benzer şekilde kolaydır: CREATE INDEX idx_users_name ON users USING biscuit(name); gibi bir komutla indeks oluşturulur ve ardından SELECT * FROM users WHERE name LIKE '%john%'; gibi LIKE sorguları optimize edilmiş şekilde çalıştırılabilir. Biscuit, metin, sayısal, tarih/saat ve boolean gibi çeşitli veri tiplerini otomatik olarak aranabilir metne dönüştürerek esneklik sunar ve çok sütunlu indekslemeyi de destekler.

İçgörü

Bu indeks, PostgreSQL kullanıcılarının büyük veri kümelerinde LIKE ve ILIKE sorgularını çok daha verimli bir şekilde yürütmelerini sağlayarak uygulama performansını önemli ölçüde artırabilir.

Kaynak