Daha hızlı arama daha PHP dizi arama / MySQL den almak mı

7 Cevap php

Hangisinin daha hızlı olduğunu merak oldu - i 25000 anahtar-değer çiftleri bir dizi aracılığıyla arama ve hızlı olacaktır aynı bilgi, bir MySQL veritabanı varsa?

çok teşekkür ederim herkese!

7 Cevap

Bu soruyu yanıtlamak için en iyi yolu, bir kriter yapmaktır.

Eğer sadece kendiniz denemek gerekir rağmen, ben uygun bir dizin var olduğunu varsayalım ve DB nedeniyle tüm ilgili olmak üzere inşa ediliyor hızlı PHP daha bunu yapabilirsiniz sonucuna gidiyorum.

Ancak, ağ gecikmeleri, PHP vs ayrıştırma SQL hızı veya DB yük ve bellek kullanım yüzdesi aşağı gelebilir.

Test edin - Bu önemsiz olması gerektiği gibi basit bir şey profilleme.

Ayrıca, veritabanları görevin tam olarak bu tür işlemek için tasarlanmış, bu yüzden doğal olarak ona iyi olacağını unutmayın. Hatta naif bir ikili arama sadece 17 bunun için karşılaştırır olurdu, bu yüzden 25k elemanlar çok değildir. Gerçek sorun, sıralama, ama bu son 60 + yıldır ölüm fethetti olmuştur.

Duruma göre değişir. Mysql Eğer hızını artıracak, indeksleme kullanabilirsiniz, ancak (başka bir sunucu üzerinde MySQL veritabanı varsa) php ile net üzerinden bilgi göndermek gerekmez.

Benim ilk düşünce daha hızlı dizilerle arıyor olurdu. Ancak, diğer tarafta gerçekten birçok faktöre bağlıdır:

  1. Nasıl databasa tablo (düzgün dizinleri kullanır, vb) tasarlanmıştır
  2. Nasıl sorgusu inşa edilmiştir
  3. Veritabanları genellikle oldukça bu tür aramalar için optimize edilmiştir.
  4. Eğer dizi yapıyorsunuz arama türü nedir? Yapabileceğin aramalarda birkaç tipi vardır. Yavaş her satırda üzerinden bir değer için bir kontrol gitmek düz bir arama olduğu, daha hızlı bir yaklaşım ikili arama olduğunu.

Ben bir veritabanında doğrudan yürütülen bir select deyimi ve php bir dizi arama karşılaştıran varsayılır. Değil

MySQL verimli sıralamak ve bu gibi verilerin, büyük miktarda arama için inşa edilmiştir. Eğer bir tablo MySQL indeksler yana birincil anahtarlar, bir anahtar ararken, bu özellikle doğrudur.

Akılda tutulması gereken bir şey: Arama veritabanı üzerinde yoğun işlemci ise o kadar hızlı olmasa bile PHP bunu yapmaya değer olabilir. Bu ölçeklerken veritabanı sunucuları daha web sunucularını eklemek için genellikle daha kolay.