Selamlar elimde yaklaşık 100-150 milyarlık bir ürün barkodu ürün ismi ve fiyatından oluşan bir excel dosyası var sorgulama için bunların yaklaşık 1 milyar satırını mysql veritabanına python betiği ile uyarladım. Şu anda anlık anlık veritabanımda 600 milyon satır mevcut fakat yazdırdığım php sistemi ile aldığım sorgu süresi çok uzun gerekli araştırmaları yaptım fakat işin içinden çıkamadım bu konuda bilgisi olan yardımcı olabilecek veya akıl verebilecek arkadaşların önerilerine açığım teşekkürler
hocam adet fazla gibi gözükebilir ama ürün barkod, ismi, fiyatı sorgulama işi mysql için veya diğer bilinen database sunucular için bebek işi. karmaşık bir sorgunuz yok. başka yazmadığınız birşeyler yoksa, sunucunuz yeterli olmayabilir, mysql yerine mariadb daha hızlıdır, mysql tuner diye ücretsiz yazılım var onu da deneyebilirsiniz, ya da aşağıdaki GPT'nin sıraladığı maddelere bir göz atın. elasticsearch daha çok, full text search için mantıklı olur, içerik içinde arama gibi, örneğin sahibinden gibi sitelerdeki ilanlardaki içeriği aratmak için, ama sizinki eğer yazdığınız bilgi dışında birşey yoksa, basit CRUD, sadece adedi yüksek, ve muhtemelen sunucunuz yetmiyor.
GPT:
Veritabanı sorgu süresini optimize etmek için bazı önerilerim var. İşte düşünmeniz gereken bazı adımlar:
- Veritabanı İndeksleme: Veritabanınızın sütunlarını doğru şekilde indekslediğinizden emin olun. İndeksler, sorgu hızını artırabilir. Özellikle sık kullanılan sütunları indekslemek önemlidir.
- Veritabanı Optimizasyonu: Veritabanınızın yapılandırmasını kontrol edin. Örneğin, veritabanı tampon boyutunu ve sorgu önbelleğini ayarlayarak performansı artırabilirsiniz.
- Sorgu Optimizasyonu: Sorgularınızı optimize edin. Örneğin, gereksiz JOIN işlemlerini ve alt sorguları azaltmaya çalışın. Sorgu planını inceleyerek hangi alanların yavaşladığını belirleyin.
- Veritabanı Sunucusu: Veritabanı sunucunuzun donanımını ve yapılandırmasını gözden geçirin. Daha hızlı bir sunucu veya daha fazla bellek eklemek performansı artırabilir.
- Veritabanı Partisyonlama: Büyük veritabanlarını bölerek performansı artırabilirsiniz. Örneğin, verileri tarih veya başka bir kritere göre bölebilirsiniz.
- Veritabanı İş Yükü Dağıtımı: Veritabanı iş yükünü birden fazla sunucuya dağıtarak yükü dengeleyin. Bu, sorgu süresini azaltabilir.
- Veritabanı İzleme ve Günlükleri İnceleme: Veritabanı günlüklerini inceleyerek yavaş sorguları belirleyin ve bu sorguları optimize edin.
- Veritabanı Versiyonu: Kullandığınız veritabanı yönetim sisteminin en son sürümünü kullanın. Yeni sürümler genellikle performans iyileştirmeleri içerir.
Bu adımları göz önünde bulundurarak veritabanı sorgu süresini optimize etmeye çalışın.