2009-04-16 13 views
6

Tek bir tabloyu temel alan bir metin içeren bir uygulama yapıyorum. Zaman zaman, bitişik bir sütunun bir görüntüsü olacaktır. Bu görüntüyü bir BLOB olarak SQLITE'da saklamak mı yoksa dosya sisteminde saklamak ve programlarıma göndermem gerekir mi? Teşekkürler!Görüntüleri görmek için SQLITE Blob OR dosya sistemi

+0

Sadece açıklama için - bu bir iPhone uygulaması için doğru mu? – AnonJr

cevap

2

DÜZENLEME:

Hiç Özellikle iPhone çevre içindir biliyoruz. Bu durumda DB'yi tüm içeriği tek bir yerde bulundurmanın basitliği için kullanacağım. Ölçeklenebilirlik konusunda endişelenmenize gerek yok çünkü iphone'unuz sunucu ya da herhangi bir şey olarak kullanılmayacak gibi değil.

Orjinal Yanıtı:

bu yedeklemek için herhangi bir bağlantıyı yok, ama "kesilmiş" blob verimliliği için 1 MB çeşitli çalışmalarda okuma hatırlayın. Ancak bu, yeterince hızlı bir disk dizisi ile 10 MB'a kadar taşınabilir. Tamamen sisteme bağlı.

Temel olarak, verim kesiminiz göz önüne alındığında, DB'den daha küçük olan herhangi bir veri DB tarafından daha iyi sunulmakla kalmaz, yalnızca DB'de indekslenir ve bir dosya önbelleğinde bırakılır.

+0

iphone kullanıyor, bu yüzden diskin kendisi yükseltilemiyor. – Kevlar

+0

ahh, bu kısmı görmedim. –

1

Gerçekten uygulamanıza bağlıdır. Resimlerin bir veritabanında saklanması, eksik olabilecek ayrı dosyalarda bulunmak yerine, bunları tek bir noktadan kolayca erişebildiğiniz için hayatınızı kolaylaştıracaktır. Öte yandan, oldukça büyük olan birçok görüntü, bir SQLITE veritabanı için çok fazla olabilir. Durumunuzda onları veritabanında referans olarak kullanıyorum.

3

Dosyalar uzun vadede size daha az sorun çıkaracaktır. Özellikle veritabanı sunucunuzdan tonlarca dosya sunmak istemiyorsanız, özellikle

+1

Dosyalar, görüntüleri verimli bir şekilde yüklemeyi kolaylaştıracaktır. [UIImage imageNamed: @ "blah.png"] işlevini kullanırsanız, görüntü, taranabilir RAM'e yüklenir ve gerektiğinde dosyadan yüklenir/yüklenir (yani artık görüntülenebilir olmadığında ve bellekte sıkıysa, temizlenir ve sonra Yeniden görüntülenebilir olduğunda yeniden yüklendi) – Gabe

+0

Vay ... API bu dosya sistemine değil, soyut bir türe bağlıyor? ... –

2

Ölçeğinizdeki resimleri saklamak istiyorum UIImage görüntü dosyalarını önbelleğe alabildiğinden, bunları gerektiğinde otomatik olarak belleğe atabilirim. Sadece bir UIImage'a yüklenen bir görüntü dosyasını değiştirmemek veya silmemek için dikkatli olun, aksi takdirde çökme veya diğer garip hatalar oluşur.

3

Kullanacağınız resimlerin aşırı derecede büyük olmadığını ve aşırı miktarda olmadığını varsayardım veritabanıyla giderdim.

Şu anda birkaç farklı Windows Mobile ve WinCE aygıtında Sqlite veritabanı kullanıyorum ve 10,000'den fazla küçük resim blob olarak depolanıyor ve harika çalışıyor.

Dosya tabanlı görüntü yüklemesini kullanarak aynı donanım üzerinde çalışan yazılımımıza benzer bir yazılım gördüm ve önemli ölçüde daha yavaştı. Elbette bu, WinCE'de ve farklı yazılımlarda yapıldı, bu yüzden en iyi test değil.

Tek bir veritabanının, birçok görüntü dosyasında çalışmaktan çok daha kolay olduğunu buldum.

İlgili konular