• 23-05-2024, 00:18:18
    #1
    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
  • 23-05-2024, 00:20:09
    #2
    uğraşmamak istersen postgresql indexli bas
    uğraşırım dersen a/b.json şeklinde böl bu dosyada ab.. ile başlayan idler olsun öyle sorgu atmayı dene cache ile tabi
    postgreste partitioning var ona da bakabilirsin
  • 23-05-2024, 00:23:19
    #3
    Eğer CRUD yoksa Elasticsearch olabilir diye düşünüyorum. Postgre masraflı olacaktır. Apache Druid'de güzel bir çözüm olabilir ancak ciddi uğraş ister.
  • 23-05-2024, 00:23:27
    #4
    1 Datanın tam olarak içeriği nedir ?
    2 Sorgu şekli nedir ? ne arayacaksınız ?
    3 php kullanmanız mecburiyet midir ?

    Lumia adlı üyeden alıntı: mesajı görüntüle
    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
  • 23-05-2024, 00:24:29
    #5
    Hızlı ve işlevsel bir çözüm arıyorsan mongo db ve elasticsearch ile çalışabilirsin elasticsearche indexletip de db aratmak baya hızlandırır
  • 23-05-2024, 00:25:30
    #6
    bağımsız değerler ile mi sorgulama yapıyorsun?
  • 23-05-2024, 00:26:07
    #7
    yukarıdaki yorumlarda belirtilmiş fakat elastic sizin için en mantıklı seçenek olacaktır
  • 23-05-2024, 00:28:31
    #8
    Lumia adlı üyeden alıntı: mesajı görüntüle
    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:
    1. 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.
    2. 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.
    3. 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.
    4. 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.
    5. 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.
    6. Veritabanı İş Yükü Dağıtımı: Veritabanı iş yükünü birden fazla sunucuya dağıtarak yükü dengeleyin. Bu, sorgu süresini azaltabilir.
    7. Veritabanı İzleme ve Günlükleri İnceleme: Veritabanı günlüklerini inceleyerek yavaş sorguları belirleyin ve bu sorguları optimize edin.
    8. 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.
  • 23-05-2024, 00:36:32
    #9
    hesapadim adlı üyeden alıntı: mesajı görüntüle
    uğraşmamak istersen postgresql indexli bas
    uğraşırım dersen a/b.json şeklinde böl bu dosyada ab.. ile başlayan idler olsun öyle sorgu atmayı dene cache ile tabi
    postgreste partitioning var ona da bakabilirsin
    Hocam exelden dönüştürdüğüm için json olarak çevirmek hem zaman kaybı hemde başa sarmak olur , dediğinize not aldım bakacağım pek bilgi sahibi değilim araştıracağım

    Developer adlı üyeden alıntı: mesajı görüntüle
    Eğer CRUD yoksa Elasticsearch olabilir diye düşünüyorum. Postgre masraflı olacaktır. Apache Druid'de güzel bir çözüm olabilir ancak ciddi uğraş ister.
    Hocam crud yok , birkaç tanıdığım kişi elasticsearch'tan bahsetti fakat forumda düzgün bir konu veya uğraşan kimseyi göremedim

    osawashere adlı üyeden alıntı: mesajı görüntüle
    1 Datanın tam olarak içeriği nedir ?
    2 Sorgu şekli nedir ? ne arayacaksınız ?
    3 php kullanmanız mecburiyet midir ?
    Datanın içeriği konudada belirttiğim üzere ürün ismi ve barkodu gramajı ve fiyatlarından oluşuyor sorgu şekli api direk mysql bağlantısı kullanarak kullanıcı panelinden müşterinin arattığı ürünün bilgilerini getiriyor , şu anlık bayilik sistemi site üzerinden olduğu için php mecburi malsef.

    TeknoCoder adlı üyeden alıntı: mesajı görüntüle
    Hızlı ve işlevsel bir çözüm arıyorsan mongo db ve elasticsearch ile çalışabilirsin elasticsearche indexletip de db aratmak baya hızlandırır
    Şu anlık elasticsearch en mantıklısı gibi duruyor hocam

    DogukanX adlı üyeden alıntı: mesajı görüntüle
    bağımsız değerler ile mi sorgulama yapıyorsun?
    Evet hocam

    hazarardatuysuz adlı üyeden alıntı: mesajı görüntüle
    yukarıdaki yorumlarda belirtilmiş fakat elastic sizin için en mantıklı seçenek olacaktır
    Evet hocam elastic en mantıklısı gibi gözüksede internette tam olarak nokta atışı bir bilgi yok yabancı kaynaklar dahil ve uğraşan kimseyide bulamadım forumda.

    selimkoc adlı üyeden alıntı: mesajı görüntüle
    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:

    GPT:


    Veritabanı sorgu süresini optimize etmek için bazı önerilerim var. İşte düşünmeniz gereken bazı adımlar:
    1. 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.
    2. 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.
    3. 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.
    4. 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.
    5. 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.
    6. Veritabanı İş Yükü Dağıtımı: Veritabanı iş yükünü birden fazla sunucuya dağıtarak yükü dengeleyin. Bu, sorgu süresini azaltabilir.
    7. Veritabanı İzleme ve Günlükleri İnceleme: Veritabanı günlüklerini inceleyerek yavaş sorguları belirleyin ve bu sorguları optimize edin.
    8. 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.
    Öncelikle yorumunuz için teşekkürler hocam bahsettiğim verilerden oluşuyor veritabanı problem şu normal direkt ürün ismi veya barkodundan arama yaparken problem yaratmıyor fakat direkt ürünün markasını girdiğimizde o markaya ait aynı model ürünlerin listelenmesi vakit alıyor buda can sıkıcı bir durum dediğiniz gibi mariadb hazır kurulu şekilde veren bazı firmalar var vultr, docean gibi şu an araştırma aşamasındayım bakıyorum deneyeceğim.