Anket MYSQL'de hangi sorgunun performansı daha yüksektir?
Toplam Katılımcı Sayısı: 12
MYSQL'de hangi sorgunun performansı daha yüksektir?
LIKE
%50,00 (6 Oy)
MATCH AGAINST
%50,00 (6 Oy)
  • 01-02-2013, 18:29:06
    #1
    Arkadaşlar hazırlamakta olduğum yeni yazılımda kafama takılan bir soru ile ilgili görüşlerinizi almak istedim. Konu şu; biliyorsunuzki genel olarak hepimiz MySQL arama sorgularında genellikle LIKE kullanırız ve bunun büyük veri gruplarında performansı ile ilgili problemlerden dert yanarız. Ben son 1,5 yıldır MATCH AGAINST ile sorgular yapmaktayım.

    SORU;
    Bu iki sorgudan hangisi daha performanslıdır ve büyük veri gruplarında sunucuyu yormadan hızlı bir şekilde çıktı verir?


    NOT: Ben testler esnasında LIKE ile yaptığım bir sorguda ortalama 0.000312ms, MATCH AGAINST ile yaptığım sorguda 0.000319ms süresinde tepkime aldım.

    Türkçe olarak araştırdığım sayfalarda hiçbir sonuç bulamadım bu konunun merak edenleri olduğunu ve güzel bir kaynak oluşturacağını düşündüğümden dolayı konuyu açtım, ilginize şimdiden teşekkür ederim.
  • 01-02-2013, 18:58:22
    #2
    MATCH AGAINST diye oy verdim
  • 01-02-2013, 20:12:20
    #3
    Üyeliği durduruldu
    bu tip teknik konular anket oylayarak seçim yapılmaz.
    alternatif kullanım yoksa, ikisi arasında dağlar kadar fark yoktur
  • 01-02-2013, 20:18:04
    #4
    Üyeliği durduruldu
    benim oyum da match against ten yana

    http://stackoverflow.com/questions/7...gainst-or-like
  • 01-02-2013, 21:00:32
    #5
    Yüksek boyutlu ve full text olan innodb ve myISAM bir veritabanında ikisini de test etmek gerekir kesin birşey söylebilmek için bunun yanı sıra sunucu özellikleri de önemli
  • 01-02-2013, 21:46:32
    #6
    BHCoder adlı üyeden alıntı: mesajı görüntüle
    bu tip teknik konular anket oylayarak seçim yapılmaz.
    alternatif kullanım yoksa, ikisi arasında dağlar kadar fark yoktur
    Oylamanın asıl amacı çoğunlukla hangi yöntemin kullanıldığının tespit edilebilmesidir.

    wdr.leo adlı üyeden alıntı: mesajı görüntüle
    Yüksek boyutlu ve full text olan innodb ve myISAM bir veritabanında ikisini de test etmek gerekir kesin birşey söylebilmek için bunun yanı sıra sunucu özellikleri de önemli
    Peki sizce önce like sorgusu ardından OR kullanarak match yaptırsak performans problemi olurmu?
  • 01-02-2013, 22:46:39
    #7
    tecnohalil adlı üyeden alıntı: mesajı görüntüle
    Oylamanın asıl amacı çoğunlukla hangi yöntemin kullanıldığının tespit edilebilmesidir.


    Peki sizce önce like sorgusu ardından OR kullanarak match yaptırsak performans problemi olurmu?
    Hocam OR bir karşılaştırma operatörü veya anlamına geliyor.
    Siz like ve match i orla çalıştırmaktan neyi kastettiniz tam anlayamadım.
    Ama şöyle açıklayayım OR kullanılan bir yerde önce bir karşılaştırma yapılacak ve sonra match veya like çalışacaktır. Buna dayalı olarak OR performansı çok az düşürecektir, match ve like ın çalışma şekli yine aynı olacaktır.

    Şöyle birşeyde var ki siz match ve like fonksiyonlarını karşılaştırıyorsunuz bu durumda ancak match ve like ın çalışma performansı karşılaştırır.
    Veritabanı Performansım yükselsin diyorsanız olay bunlarla bitmiyor, düzgün bir tablo yapısı, doğru sorgu motoru, doğru yazılım ve ihtiyacı karşılayacak bir sunucu gerekir. Fonksiyonlar yapılabilecek en son sıradadır, tabii ki bu önemsiz olduğu anlamına gelmez sadece bundan önce bakmamız gerekenler yukarıdakilerdir.
    Veritabanı büyük olmadığı sürece match veya like kullanmanın pek bir farkı olmayacaktır.
    Bir slayt bulmuştum orada 8 GB lık bir db de yapılan sorgu testlerine göre like daha kısa sürede işlemini tamamlamış gözüküyordu hatırladığım kadarıyla o slaytı bulursam buradan yollarım.
  • 01-02-2013, 23:14:34
    #8
    küçük projelerde "arama işlemi"niz için hiç fark ettirmez, büyük projelerde "arama işlemi" farklı anlam kazanabilir. Performans sorunlarını ortadan kaldırmak için yöntemler aramaya başlarsınız. 1m haberli veritabanı içinde arama işlemi yaparken LIKE uygun olmaz. Burada birçok koşuldan konuşulması gerekir ama...
    İki fonksiyonun kullanımı ve karşıladıkları anlam farklıdır yani.

    İlaveten eklemek istedim: "MySQL arama sorgusu" diyeceksek buna bunun karşılığı (kelime anlamının tam karşılığı) MATCH fonksiyonunda yatar.
  • 05-02-2013, 20:15:19
    #9
    Değerli yorumlar ve katılımlarınız için çok teşekkür ederim...