Блоб SQLITE ИЛИ файловая система для изображений

Есть несколько способов преобразовать данные столбца в данные строки. Использование функции «PIVOT»

select CheckBox0, CheckBox1, CheckBox2, CheckBox3
from
(
  select Id, CheckBoxList
  from yourtable
) d
pivot
(
  max(Id)
  for CheckBoxList in (CheckBox0, CheckBox1, CheckBox2, CheckBox3)
) piv;
6
задан 16 April 2009 в 18:38
поделиться

5 ответов

Файлы будут вызывать меньше проблем в долгосрочной перспективе. Вы действительно не хотите обслуживать тонны файлов с вашего сервера баз данных, особенно при масштабировании

3
ответ дан 9 December 2019 в 22:39
поделиться

Предполагая, что изображения, которые вы собираетесь использовать, не очень велики, и их непомерное количество, я бы пошел с базой данных.

В настоящее время я использую базу данных Sqlite на нескольких различных устройствах Windows Mobile и WinCE с более чем 10 000 небольших изображений, хранящихся в виде больших двоичных объектов, и это прекрасно работает.

Я видел программное обеспечение, подобное нашему, работающее на том же оборудовании с использованием загрузки изображений на основе файлов, и оно было значительно медленнее. Конечно, это было на WinCE и другом программном обеспечении, так что это не лучший тест.

Я считаю, что с одной базой данных работать намного проще, чем со многими файлами изображений.

3
ответ дан 9 December 2019 в 22:39
поделиться

РЕДАКТИРОВАТЬ:

Не понял, что вы специально для среды iPhone. В этом случае я бы использовал БД только для простоты размещения всего контента в одном месте. Вам не придется беспокоиться о масштабируемости, потому что это не значит, что ваш iphone будет использоваться в качестве сервера или чего-либо еще.

Оригинальный ответ:

У меня нет ссылок, подтверждающих это, но я вспоминаю чтение в нескольких Исследования показывают, что «отсечка» составляет 1 МБ для эффективности BLOB-объектов. Но это может переместиться до 10 МБ с достаточно быстрым дисковым массивом. Полностью зависит от системы.

Таким образом, в сущности, учитывая вашу эффективность, любые данные меньшего размера лучше обслуживать БД, а все большее - просто индексировать в БД и оставлять в файловом кеше.

2
ответ дан 9 December 2019 в 22:39
поделиться

Это действительно зависит от вашего приложения. Хранение изображений в базе данных облегчит вашу жизнь, так как они доступны в одной точке, а не в отдельных файлах, которые могут пропасть. С другой стороны, многие изображения, которые являются довольно большими, могут оказаться слишком большими для базы данных SQLITE. В вашей ситуации я бы просто сослался на них в базе данных.

1
ответ дан 9 December 2019 в 22:39
поделиться

Мне нравится хранить изображения в файловой системе, потому что UIImage может кэшировать файлы изображений и автоматически выгружать их из памяти при необходимости. Просто будьте осторожны, чтобы не изменить или удалить файл изображения, загруженный в UIImage, иначе вы получите сбой или другие странные ошибки.

2
ответ дан 9 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: