1-й шаг:
2-й шаг:
Я пробую обоих, но ничего не работает.
Из вашего проекта -
перейдите в Gradle Scripts >> build.gradle (Module: app), затем удалите ниже кода (если есть)
.............................................
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_6
}
......................................... ....
удалите его, а затем очистите проект, затем запустите. нет необходимости в java-доме, нет необходимости менять версию
10 Гбит являются не совсем огромным объемом данных, таким образом, можно, вероятно, использовать базу данных, чтобы сохранить его и не иметь никаких больших проблем, но конечно это - лучшая производительность, мудрая для использования файловой системы и службы техники безопасности, мудрой, что лучше использовать DB (резервные копии и непротиворечивость).
Счастливо, SQL-сервер 2008 позволяет Вам иметь свой пирог и есть его также, с:
В SQL Server 2008, можно применить атрибут FILESTREAM к varbinary столбцу, и SQL Server затем хранит данные для того столбца в локальной файловой системе NTFS. Хранить данные в файловой системе дает два ключевых преимуществ:
Однако столбцом можно управлять точно так же, как любой другой столбец BLOB в SQL Server, таким образом, администраторы могут использовать управляемость и средства безопасности SQL Server для интеграции управления данными BLOB с остальной частью данных в реляционном database—, не будучи должен управлять данными файловой системы отдельно.
Определение данных как столбец FILESTREAM в SQL Server также гарантирует непротиворечивость уровня данных между реляционными данными в базе данных и неструктурированными данными, которые физически хранятся в файловой системе. Столбец FILESTREAM ведет себя точно то же как столбец BLOB, что означает полную интеграцию технического обслуживания, такого как резервное копирование и восстановление, полная интеграция с моделью обеспечения безопасности SQL Server и поддержка полной транзакции.
Разработчики приложений могут работать с данными FILESTREAM через одну из двух моделей программирования; они могут использовать Transact-SQL, чтобы получить доступ и управлять данными точно так же, как стандартные столбцы BLOB, или они могут использовать API потоковой передачи Win32 с Transact-SQL транзакционная семантика для обеспечения непротиворечивости, что означает, что они могут использовать стандартные вызовы чтения-записи Win32 для БЛОБОВ FILESTREAM, как они были бы при взаимодействии с файлами в файловой системе.
В SQL Server 2008, столбцы FILESTREAM могут только хранить данные на объемах локального диска, и некоторые функции, такие как прозрачное шифрование и табличные параметры не поддерживаются для столбцов FILESTREAM. Кроме того, Вы не можете использовать таблицы, которые содержат столбцы FILESTREAM в снимках базы данных или сессиях зеркального отражения базы данных, хотя передача журналов поддерживается.
Проверьте этот отчет от Исследования MS ( http://research.microsoft.com/research/pubs/view.aspx?msr_tr_id=MSR-TR-2006-45 )
, Они детализируют точно, что Вы ищете. Короткая версия - то, что любой размер файла более чем 1 МБ начинает ухудшать производительность по сравнению с сохранением данных в файловой системе.
Я сомневаюсь, что O(log n)
для поисков была бы проблема. Вы говорите, что у Вас есть 10 ГБ изображений. Принятие среднего размера изображения говорит, что 50 КБ, это - 200 000 изображений. Выполнение индексируемого поиска в таблице для 200K строк не является проблемой. Это было бы маленьким по сравнению со временем, должен был на самом деле прочитать изображение из диска и передать его через Ваше приложение и клиенту.
Это все еще достойно рассмотрения обычные за и против хранения изображений в базе данных по сравнению с хранением путей в базе данных в файлы в файловой системе. Например:
Для чего-то как веб-сайт электронной коммерции я был бы moe, вероятно, для движения с хранением изображения в хранилище блоба на базе данных. В то время как Вы не хотите участвовать в преждевременной оптимизации, просто преимущество наличия моих изображений быть легко организованным вместе с моими данными, а также очень портативное, является одним автоматическим преимуществом для чего-то как электронная коммерция.
Если изображения будут индексированы затем, то поиск не будет большой проблемой. Я не уверен, но я не думаю, что поиск для файловой системы является O (1), больше как O (n) (я не думаю, что файлы индексируются файловой системой).
то, Что волнует меня в этой установке, является размером базы данных, но, если управляется правильно, который не будет большой проблемой, и большое преимущество состоит в том, что у Вас есть только одна вещь скопировать (база данных) и не беспокойство о файлах на диске.
Обычно хорошее решение состоит в том, чтобы сохранить сами изображения в файловой системе и метаданных (имя файла, размеры, последнее обновление время, что-либо еще, в чем Вы нуждаетесь) в базе данных.
Однако нет никакого "корректного" решения этого.