Normal görüntü depolama veya MySQL leke?

7 Cevap php

Ben tür insanlar fotoğraf yükleyebilir ve bunları yayınlamak bir blog platformu gibi bir PHP / MySQL web uygulaması programlama ediyorum.

BLOB ile bir klasörde veya MySQL tablosunda saklanması, bu görüntüleri saklamak için en iyi yolu nedir?

ben bana kolayca yayınlanan resimleri indirmek için gün harcamadan başka bir ana bilgisayar / sunucuya taşımak, ve onları yeni bir sunucuya yüklemek izin en basit yolu istiyorum çünkü ben bunu sormak.

İsteğe bağlı Soru: Bir açtığı blog platformu için yeterli özel bir sunucu var mı?

Teşekkürler

7 Cevap

Veritabanından. Bu veritabanından olduğunda Lütfen webserver işini yapmak ve müşterilerine görüntüleri önbelleğe yapabilirsiniz. Bir veritabanına dayalı dinamik görüntü ile bunu yaparken daha karmaşıktır. Ayrıca, büyük olasılıkla web sunucusu başa izin vererek çok daha iyi performans alırsınız bulacaksınız.

Senin statik dosyaları hosting sağlayan ise, bu tür Amazon S3 gibi bir CDN dosyaları offsiting düşünebilirsiniz. Uygulanması daha eseridir, ancak web host değiştirmek (eğer CDN kuruluşu değiştirmediğiniz sürece) dosyalarını taşıma konusunda endişelenmenize gerek asla. Artı dosya erişim istemcisi lokalize olacak ve hatta bu nedenle bant genişliği kullanımını azaltarak, çoğu istekleri için web sunucusu vurmak gerekmez.

En iyi yolu dizinde görüntüleri depolamak ve veritabanı sadece görüntü adını depolamak için. Bu şekilde veritabanı çok büyük büyümek olmaz ve daha rahat olacak ...

Veritabanı - bu görüntüler ise. Eğer dosya adı ile birlikte dosya almak ve en azından iş uygulamaları ve düzenli web siteleri için çok daha önemli bir performans daha (yani youtube değil, gmail, microsoft.com veri bütünlüğünü korumak, özellikle performanslı dosya sistemi olarak iyi olabilir , vs)

here is more on the topic: http://sietch.net/ViewNewsItem.aspx?NewsItemID=124

Test ve kendinizi aratmak zorunda bir şey MySQL lekeler nasıl işleyeceğini olduğunu. SQL Server veya Oracle olsaydı ben onlar lekeler ve özellikle özel filestream ve türleri BFILE oldukça iyi bir iş yaptığını olumlu değilim. MySQL ile herhangi bir deneyimi yok ve lekeler birkaç megabayt daha işleyebilir eğer gerçekten bilmiyorum.

Benim web uygulamaları, i veri tabanı üzerinden ikili dosyaları depolamak. Uygulanması daha karmaşık ancak veritabanı kaydetme alandır.

Dosyaları olarak kaydetmek:

  • Daha hızlı.

  • Hatta veritabanına erişen olmadan dosyaları (başka bir sunucuya kopyalama) işleyebilir.

Başvurunuzun bir akıllı tasarımı ile, hatta bu görüntüler ile ilgili herhangi bir veritabanı erişimi önleyebilirsiniz. Önbelleklenen şablon resimleri erişen veya akıllı dosya isimleri ile.

Veritabanını kullanın etmeyin - dosya sistemini kullanın. Ben, bu aynı sorun vardı, hem de yaklaşımlar denenmiş ve tüm dürüstlük içinde bir ikili veri deposu olarak db kullanarak çok sayıda sorunlar oldu.

Ne yapmak yerine bütün yüklenen yüklenen dosyalar ile ilgili bir referans veritabanı ve nesne dosyaları, ancak yerine sadece ben yerine dosya ilgili MD5 olmak (ya da daha sonra depolamak 'olduğu gibi' bunları saklamak içeren bir klasör var olduğunu oldukça güzel yinelenen yüklenenler ortadan kaldırır ve giderleri aşağı kesim yukarıda belirtilen dosyanın SHA-1) sağlama, -) (gerektirir; db verileri damping daha etkilidir.