Log Veritabanı Dosyasının Optimize Edilmesi Mümkün Müdür?
8
●83
- 29-03-2021, 21:37:54Test android uygulamamda çözülen soruları doğruları yanlışları tutan log dosyası bulunmakta, bir uygulamamda bunun dosya boyutu 70mb olmuş durumda bu boyutu düşürebilir miyiz? Çünkü soruları çekmek istediğimde düşük boyutlu veritabanında hemen yansırken dosya boyutu büyük veritabanında işlemler çok geç olmakta. Yada başka bir fikriniz varsa onu da yapabiliriz.
- 29-03-2021, 21:46:12Her 5mb'de bir dosyayı parçala hocamKhanJitsu adlı üyeden alıntı: mesajı görüntüle

eğer mariadb/mysql fln diyorsan da yine tabloyu parçala hocam ve mutlaka redis gibi bir yazılım kullan - 29-03-2021, 21:47:47Optimizasyondan ziyade verileri yedeklerken algoritmik olarak bazı düzenlemeler yapabilirsiniz. Örneğin fikir vermesi amacıyla söylüyorum her dakika veri gelen bir sistemde veriler True değerini döndürüyorsa ve siz False değerinin düşük ihitmalle geldiğini düşünüyorsanız sadece False değeri geldiğinde yedekleme yapıyorum. Bu sayede diğer zamanlarda hep True değerinin geldiğini anlıyorum ve kullanıcıya sadece False değerinin geldiği noktaları bildirerek diğer zaman dilimlerini sistemde True olarak gösteriyorum. Bu sayede True değerlerini yedeklemiyorum.
- 29-03-2021, 22:00:22Bu konuda hiç bir bilgim yok hocam tabloyu parçalamak herhangi bir sıkıntı yaratır mı acaba bana?yalinyalniz adlı üyeden alıntı: mesajı görüntüle
- 29-03-2021, 22:01:40Server'ın 2GB içinden tek bir veriyi çekmesi mi kısadır yoksa 5mb içinden tek bir veriyi çekmesi mi?KhanJitsu adlı üyeden alıntı: mesajı görüntüle
InnoDB file per table yap hocam sonra da kullan
- 29-03-2021, 22:20:05Fikrinizi sunucu firmama ilettim hocam yarın içerisinde bu işlemlere bakan arkadaş dönüş yapacak, mantık olarak gerçekten işe yarayacak gibi 8gb ram 6x cpu vardı sunucuda %20 işlemci kullanıyordum ama performans alamıyordum tüm sorun veritabanından kaynaklanıyormuş daha yeni çözdüm eğer bu şekilde o sorunu da bitirirsem gerçekten iyi olacak.yalinyalniz adlı üyeden alıntı: mesajı görüntüle
- 29-03-2021, 22:20:51Optimizasyon yapılsın, DB önüne de Redis konulsun o bile kafi hocam.KhanJitsu adlı üyeden alıntı: mesajı görüntüle
- 10-04-2021, 03:58:18Dosya boyutu arttıkça hız azalıyorsa doğru index kullanmadığın anlamına gelir. Indexler sql yapılarında verilerin nerede olduklarını işaret eden temel yapıtaşlarıdır. Doğru ayarlandığında verilerin sistem tarafından kolayca bulunmasını sağlar.
mysql sorgusunda where koşulundan sonra x = y olarak belirttiğin fieldlerin doğru yapıda olmalarını ve index atanmış olmalarını check edip düzeltirsen sorunun çözülür.
Verilen cevapları check edebileceğin bir sistem yaptıysan log tablosu şu şekilde olursa performans açısından işine yarar.
loglar
-- ID (log benzersiz id unique & auto inc.)
-- Sınav ID (bir üst tablodan hangi sınavın cevapları olduğunu karıalaştıracağın) (integer maks 11 length)
-- User ID (User bilgisini karşılaştıracağın) (integer maks 11 length)
-- Data (longtext)
Keyler
-- ID (primary key)
-- SInav ID ( index key)
-- User ID ( index key)
Sınav sonucları online yapıldığ için log alırken gönderilen formun tamamını $_POST değişkeniyle alıyorsun. Ve bu globalin içerisine array olarak yazılıyor o zaman tamamen bu değişkeni json hale getirip loglamak en mantıklısı olacaktır yani
<?php $log = json_encode($_POST); ?>
Bu $log değişkeninide data fieldinin içerisine gireceksin. logtext olarak orada saklayacaksın. Daha sonra veriyi sinav id ve user id ie çektikten sonra json_encode ile data değerinin içerisindeki verileri okunabilir hale getirebileceksin.
70mb lik bir tablo öyle ahım şahım bir tablo değil 10 gb lik tablolardan 0.003 saniyede veri çekiyoruz bunu doğru atanmış indexler sağlıyor.
Bu kadar.
