Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
Merhaba, dracarys kill statistics sistemini kurdum
DB'ye sadece 20931 eklentisini görüntüle bunu ekledim ve tüm istatistikleri logluyor, bu nasıl bir algoritma? Mantığı nedir, aşırı ilginç geldi. ve bu veriler nerede tutuluyor tam olarak
Bu soruda Dracarys kill statistics sistemi ile ilgili verilerin nasıl kaydedildiği ve çalıştığı merak ediliyor. Sorunun odak noktası, verilerin BLOB (Binary Large Object) formatında saklanması ve bunun altında yatan algoritma. Şimdi bu konuyu açıklayalım:
1. Kill Log’un BLOB Formatında Saklanması
BLOB (Binary Large Object), bir veritabanında büyük boyutlu ikili (binary) verileri saklamak için kullanılan bir veri türüdür. Bu, genellikle metin yerine sıkıştırılmış veya ham (binary) veriler için kullanılır.
Dracarys gibi oyun sistemlerinde, istatistik verileri (örneğin öldürme sayısı, hedef kimlikleri vb.) daha az yer kaplaması ve daha hızlı işlenmesi için genellikle sıkıştırılmış veya ikili veri formatında saklanır.
2. Algoritma Mantığı
Bu sistemin çalışma mantığını adım adım açıklayalım:
a) Verilerin Kaydedilmesi
Oyunda bir oyuncu başka bir oyuncuyu öldürdüğünde, sistem bir kill event oluşturur.
Bu event, öldüren oyuncunun kimliği (killer ID), öldürülen oyuncunun kimliği (victim ID), öldürmenin zamanı ve diğer bilgiler gibi istatistikleri içerir.
Tüm bu bilgiler binary formata dönüştürülerek, bir BLOB sütununda saklanır.
b) Verilerin Sıkıştırılması
Veriler genellikle zlib, protobuf veya benzeri bir sıkıştırma algoritması ile sıkıştırılarak veritabanında daha az yer kaplar.
Sıkıştırma sayesinde veri okunabilir bir metin (JSON veya XML gibi) yerine ikili formatta saklanır, bu da veritabanındaki işlem yükünü azaltır.
c) Logların Birleştirilmesi
Sistem, öldürme istatistiklerini tek bir veri kümesi (BLOB) içinde birleştirir. Bu, veritabanı sorgularını azaltmak ve performansı artırmak için yapılır.
Örneğin, bir oyuncunun 10 öldürme istatistiği tek bir BLOB olarak saklanır. Bu, her öldürme için ayrı bir satır eklemek yerine verimliliği artırır.
d) Verilerin Okunması
Sistem, bir oyuncunun öldürme istatistiklerine ihtiyaç duyulduğunda, BLOB verisini çözümler (decode eder) ve okunabilir bir formata dönüştürür.
Örneğin, çözümlenen veriler bir JSON objesi veya yapılandırılmış bir dizi olabilir:
Veritabanında Saklanır:
İstatistikler, oyuncu verilerini saklayan bir tablonun bir sütununda tutulur. Örneğin:
Tablo: player_statistics
Sütun: kill_log (BLOB formatında)
Bellekte Geçici Saklama:
Aktif oyuncuların öldürme istatistikleri bazen veritabanına sürekli sorgu yapılmasını önlemek için sunucunun belleğinde (RAM) geçici olarak tutulabilir.
4. Verilere Nasıl Erişilir?
Bu tür veriler genelde şu şekilde işlenir:
a) Okuma İşlemi
BLOB verisi okunur ve sıkıştırma algoritmasıyla açılır (örneğin, zlib ile decompress edilir).
Veriler okunabilir bir formata (JSON, XML, vb.) dönüştürülür.
b) Yazma İşlemi
Yeni bir öldürme bilgisi eklendiğinde, mevcut BLOB verisi çözülür, güncellenir ve tekrar sıkıştırılarak veritabanına yazılır.
5. Bu Algoritmanın Avantajları
Depolama Optimizasyonu: Sıkıştırma sayesinde daha az yer kaplar.
Performans: Tek bir sütunda büyük miktarda veri saklandığı için sorgu işlemleri hızlıdır.
Esneklik: İkili format kullanıldığı için veri yapısı kolayca değiştirilebilir.
Sonuç
Dracarys kill statistics sisteminde kullanılan BLOB formatı, öldürme istatistiklerini sıkıştırılmış ve optimize edilmiş bir biçimde saklamayı sağlar. Bu sistemin mantığı:
Verileri sıkıştırarak tek bir sütunda saklama,
İhtiyaç halinde veriyi çözerek kullanılabilir hale getirme,
Performans ve depolama avantajı sağlamaktır.
Eğer bu veriyi çözümlemek veya daha fazla bilgi almak istersen, kullanılan sıkıştırma algoritmasını ve veritabanı yapısını öğrenmek faydalı olacaktır.
Bu soruda Dracarys kill statistics sistemi ile ilgili verilerin nasıl kaydedildiği ve çalıştığı merak ediliyor. Sorunun odak noktası, verilerin BLOB (Binary Large Object) formatında saklanması ve bunun altında yatan algoritma. Şimdi bu konuyu açıklayalım:
1. Kill Log’un BLOB Formatında Saklanması
BLOB (Binary Large Object), bir veritabanında büyük boyutlu ikili (binary) verileri saklamak için kullanılan bir veri türüdür. Bu, genellikle metin yerine sıkıştırılmış veya ham (binary) veriler için kullanılır.
Dracarys gibi oyun sistemlerinde, istatistik verileri (örneğin öldürme sayısı, hedef kimlikleri vb.) daha az yer kaplaması ve daha hızlı işlenmesi için genellikle sıkıştırılmış veya ikili veri formatında saklanır.
2. Algoritma Mantığı
Bu sistemin çalışma mantığını adım adım açıklayalım:
a) Verilerin Kaydedilmesi
Oyunda bir oyuncu başka bir oyuncuyu öldürdüğünde, sistem bir kill event oluşturur.
Bu event, öldüren oyuncunun kimliği (killer ID), öldürülen oyuncunun kimliği (victim ID), öldürmenin zamanı ve diğer bilgiler gibi istatistikleri içerir.
Tüm bu bilgiler binary formata dönüştürülerek, bir BLOB sütununda saklanır.
b) Verilerin Sıkıştırılması
Veriler genellikle zlib, protobuf veya benzeri bir sıkıştırma algoritması ile sıkıştırılarak veritabanında daha az yer kaplar.
Sıkıştırma sayesinde veri okunabilir bir metin (JSON veya XML gibi) yerine ikili formatta saklanır, bu da veritabanındaki işlem yükünü azaltır.
c) Logların Birleştirilmesi
Sistem, öldürme istatistiklerini tek bir veri kümesi (BLOB) içinde birleştirir. Bu, veritabanı sorgularını azaltmak ve performansı artırmak için yapılır.
Örneğin, bir oyuncunun 10 öldürme istatistiği tek bir BLOB olarak saklanır. Bu, her öldürme için ayrı bir satır eklemek yerine verimliliği artırır.
d) Verilerin Okunması
Sistem, bir oyuncunun öldürme istatistiklerine ihtiyaç duyulduğunda, BLOB verisini çözümler (decode eder) ve okunabilir bir formata dönüştürür.
Örneğin, çözümlenen veriler bir JSON objesi veya yapılandırılmış bir dizi olabilir:
Veritabanında Saklanır:
İstatistikler, oyuncu verilerini saklayan bir tablonun bir sütununda tutulur. Örneğin:
Tablo: player_statistics
Sütun: kill_log (BLOB formatında)
Bellekte Geçici Saklama:
Aktif oyuncuların öldürme istatistikleri bazen veritabanına sürekli sorgu yapılmasını önlemek için sunucunun belleğinde (RAM) geçici olarak tutulabilir.
4. Verilere Nasıl Erişilir?
Bu tür veriler genelde şu şekilde işlenir:
a) Okuma İşlemi
BLOB verisi okunur ve sıkıştırma algoritmasıyla açılır (örneğin, zlib ile decompress edilir).
Veriler okunabilir bir formata (JSON, XML, vb.) dönüştürülür.
b) Yazma İşlemi
Yeni bir öldürme bilgisi eklendiğinde, mevcut BLOB verisi çözülür, güncellenir ve tekrar sıkıştırılarak veritabanına yazılır.
5. Bu Algoritmanın Avantajları
Depolama Optimizasyonu: Sıkıştırma sayesinde daha az yer kaplar.
Performans: Tek bir sütunda büyük miktarda veri saklandığı için sorgu işlemleri hızlıdır.
Esneklik: İkili format kullanıldığı için veri yapısı kolayca değiştirilebilir.
Sonuç
Dracarys kill statistics sisteminde kullanılan BLOB formatı, öldürme istatistiklerini sıkıştırılmış ve optimize edilmiş bir biçimde saklamayı sağlar. Bu sistemin mantığı:
Verileri sıkıştırarak tek bir sütunda saklama,
İhtiyaç halinde veriyi çözerek kullanılabilir hale getirme,
Performans ve depolama avantajı sağlamaktır.
Eğer bu veriyi çözümlemek veya daha fazla bilgi almak istersen, kullanılan sıkıştırma algoritmasını ve veritabanı yapısını öğrenmek faydalı olacaktır.
teşekkür ederim hocam mantığı anladım ancak şuan mesela x oyuncusunun kestiği metin sayısını düzenlemek istesem bunu navicattan nasıl yapabilirim tam olarak o kısmı anlamadım
teşekkür ederim hocam mantığı anladım ancak şuan mesela x oyuncusunun kestiği metin sayısını düzenlemek istesem bunu navicattan nasıl yapabilirim tam olarak o kısmı anlamadım
okudum zaten bu sistemi sordum ben hala aynı şeyi diyorum
Merhaba, dracarys kill statistics sistemini kurdum
DB'ye sadece 20931 eklentisini görüntüle bunu ekledim ve tüm istatistikleri logluyor, bu nasıl bir algoritma? Mantığı nedir, aşırı ilginç geldi. ve bu veriler nerede tutuluyor tam olarak
sistemin linki yok ben söktüm ne tuttuğundan z iyade tutulan şey nereden okunuyor ben bunu sormuştum ama arkadaşın dediği gibi sanırım Python da mysql.connector da okunuyormuş öyle söyledi