Hangisi kaynaklar açısından daha az maliyetlidir?

5 Cevap php

Ben mümkün olduğunca çok mysql sorguları azaltmak için çalışıyor benim sitelerinden biri için bir optimizasyon haçlı Im.

Sitenin çeşitli modülleri için. Txt dosyaları yazar ve talep üzerine onları günceller kısmi önbelleğe alma, uygulama Im. Ben tüm kullanıcılar için durağan olamaz ki, biri geldi, o yüzden HD yazılı. Txt dosyası şu, php aracılığıyla anında değişmiş olması gerekir.

Üzerinden yapıldığı

flush();
ob_start();
include('file.txt');
$contents = ob_get_clean();

Sonra değişken $ içeriğinde html değiştirebilir ve farklı kullanıcılar için echo.

O Alternatif olarak, ben kategori adları (yaklaşık 13 tanesi) sahip küçük bir tablo sorgular bir mysql sorgusu, çalıştığı, onu bırakabilirsiniz.

Hangisi daha pahalı? Bir sorgu her zaman çalışıyor .... ya ben statik. Txt dosyasına, anında html kodu enjekte etmek, yukarıda yayınlanmıştır yöntemiyle yapıyor?

5 Cevap

(Çok garip kurulumları kaydetmek) dosyası okunurken DB (ağ etkileşim, ve c) sorgulayarak daha inceden hızlı olacak, ama fark pek ölçülebilir olacak - sadece denemek ve bunu ölçmek görmek!

Ilk sorguları optimize! Sonra sık erişilen verilerin, memcache veya benzer önbellek sistemi kullanmak ve sonra dosya önbelleğini ekleyebilirsiniz. Biz kombine üçünü kullanabilir ve çok düzgün çalışır. Küçük optimize sorgular o kadar kötü değil. DB yerel sunucusu ise - ağ, bir sorun değildir. Ve (i MySQL kullanıyorsunuz sanırım) MySQL sorgu önbelleği kullanmak sahtekâr yoktur.

Nerede performans darboğazı nedir?

Eğer darboğaz bilmiyorsanız, size optimizasyonlar hakkında herhangi mantıklı bir değerlendirme yapamaz.

Bazı ölçümler toplamak ve buna göre optimize.

Her iki deneyin ve mümkünse daha sürdürülebilir bir açık kazanır ya değilse ya birini seçin. Bu DB o gidiyor ne kadar yük, nerede bağlıdır, ve birden fazla uygulama örneği çalıştırmak gerekir olup olmadığını (daha sonra ağ üzerinde bu dosyayı paylaşmak için gerekiyordu ve artık yerel değil).

Burada PHP / MySQL site kodu üstlenmeden olduğumda benim için işe modellerdir.

Sayfa başına sorgu sayısı kesinlikle önemlidir - ile bir kompleks sorgu hızlı sürece indeksleri uygun olduğu gibidir katıldı. Tek bir sayfa hemen hemen her zaman beş veya daha az benim deneyim sorgular, artı sınıfların sınıfları ve dizileri iyi kullanımı ile oluşturulabilir. Genellikle uygulaması için oturumu ve bir sorgu için bir sorgu.

Indeksler sonra üzerinde çalışmak için büyük şey önbelleğe yapılandırma parametreleri olduğunu.

Döngüler sorguları asla.

Dosyalarına veritabanı sorgularını hareket genellikle sorgu bütünlüğünü vidalama biter, özellikle yararlı bir strateji olmamıştı.

Alex ve diğerleri test hakkında haklısın. Sayfalarınız fark yavaşsa, o zaman onlar bir nedenle (veya nedenlerle) için yavaş - hatta nedenleri nelerdir bilmek ve değişikliklerin sonuçlarını ölçmek kadar değişen bir şey başlamak yok. (Sizin durumunuzda gibi) karmaşıklığı eklerken tahmin ederek üstlenmeden espeically her zaman kaybeden bir stratejidir.