Asla Çok Zengin veya İnce: Sqlite’ı %80 Sıkıştır


Aksi takdirde bir dosya kullanabileceğiniz orta düzeyde karmaşıklık içeren herhangi bir şey için SQLite kullanmanın büyük hayranlarıyız. Avantajları çoktur, ancak bazen dosya depolamaya güvenmek istersiniz. [Phiresky] buna harika bir cevabı var: sqlite-zstd uzantısı teklifleri SQLite için şeffaf satır düzeyinde sıkıştırma.

Elbette başka seçenekler de var, ancak gönderide belirtildiği gibi, bunların her birinin bazı dezavantajları var. Ancak, bir tablonun her satırını sıkıştırarak, diğer yöntemlerin bazı dezavantajları olmadan rastgele erişimi koruyabilirsiniz.

Sıkıştırılmış bir tablo, sıkıştırılmamış bir görünüme ve temeldeki sıkıştırılmış bir tabloya sahiptir. Sıkıştırma sözlüğü, her tablo için yüklenir ve performansı artırmak için önbelleğe alınır. Uygulama açısından, sıkıştırılmamış görünüm sadece normal bir tablodur ve herhangi bir kod değişikliğine ihtiyacınız yoktur.

Sıkıştırmanın, performansa yardımcı olabilecek verileri nasıl gruplayacağını seçebilirsiniz. Örneğin, sabit sayıda satırı bir araya getirmek yerine, kayıt gruplarını tarihlere göre sıkıştırabilir veya hatta hiç değişmeyen tablolar için yararlı olabilecek tek bir sözlüğü sabitleyebilirsiniz.

Performanstan bahsetmişken, açma anında gerçekleşir, ancak veritabanı boştayken sıkıştırma ve sözlük oluşturma arka planda yapılır. Kıyaslamalar, elbette, bir miktar performans artışı gösteriyor, ancak bu her zaman böyle: hız için alan takası yaparsınız. Öte yandan, rastgele erişim için, okunacak daha az veri olduğundan sıkıştırılmış tabloları kullanmak aslında daha hızlıdır. Rastgele güncellemeler, sıkıştırma o sırada gerçekleşmese de daha yavaştı.

SQLite kullanmaya hızlı bir başlangıç ​​yapmak istiyorsanız, bunun için bir Linux Fu var. Sürüm oluşturmayı Git benzeri bir sistemle bile kullanabilirsiniz; bu, geleneksel dosyalara göre başka bir avantajdır.


Kaynak : https://hackaday.com/2022/08/01/never-too-rich-or-thin-compress-sqlite-80/

Yorum yapın