Я бы не стал делать это самостоятельно, если вы не знаете все перефокусировки того, что вы делаете.
Транзакционная согласованность, например, не тривиальна.
Я бы предложил спроектировать ваш код таким образом, чтобы позднее его можно было легко заменить, а затем запустить с чем-то вменяемым (SQLite - хороший начальный выбор), разработать его наиболее разумным и рациональным способом, а затем попробовать создать временные интервалы. в альтернативном магазине поддержки.
Затем профилируйте различия и запустите регрессионные тесты, чтобы убедиться, что ваша база данных не хуже SQLite.
Существующие решения для баз данных, как правило, выигрывают, потому что у них были годы совершенствования и тонкой настройки, чтобы получить свои преимущества, наивная попытка, вероятно, будет медленнее, громче и будет делать меньше, в то время как Увеличение ваша загрузка разработки в чисто МОНУМЕНТАЛЬНЫХ пропорциях.
http://fetter.org/optimization.html
- Первое правило оптимизации - вы не говорите об оптимизации.
- Второе правило оптимизации - вы НЕ говорите об оптимизации.
- Если ваше приложение работает быстрее, чем базовый транспортный протокол, оптимизация завершена.
- Один фактор за раз.
- Нет маркетроидов, нет расписаний маркетроидов.
- Тестирование будет продолжаться столько, сколько потребуется.
- Если это ваша первая ночь в Клубе оптимизации, вам нужно написать контрольный пример.
Кроме того, с базами данных есть одна вещь, которую вы совершенно ДОЛЖНЫ укоренить.
Скорость не важна
Ваши данные находясь там , когда вам это нужно, , что важно.
Если вы уверены, что ваши данные всегда будут там, тогда вы можете беспокоиться о таких простых проблемах, как скорость.
Хэши
Вы также сетуете на то, что будете использовать образы SHA / MD5 и т. Д. Для дедупликации изображений. Это само по себе ошибочное представление, хэши файлов могут только определить, отличаются ли файлы, а не совпадают ли они.
Логика сродни тому, чтобы попросить 30 человек подбросить монету, и вы видите, что первый получает головы, и, таким образом, решает удалить любого другого человека, который получает голову, потому что он, очевидно, один и тот же человек.
https://stackoverflow.com/questions/405628/what-is-the-best-method-to-remove-duplicate-image-files-from-your-computer
Хотя вы можете подумать, что вряд ли у вас будет 2 разных файла с одинаковым хешем, ваши шансы примерно такие же, как и выигрыш в лото. Шансы на то, что вы выиграете в лото, невелики, но кто-то выигрывает в лото каждый день. Не позволяй этому быть тебе.