Здесь начинается новый проект, и я собираюсь хранить много пользовательских данных.Я пытаюсь сделать систему масштабируемой с самого начала, поэтому я рассматриваю довольно новую идею хранения данных каждого пользователя (в основном списков файлов, которые они сохранили) в отдельных базах данных SQLite, хранящихся в пользовательском каталоге, а не в однойогромная таблица в MySQL с идентификаторами пользователей.В списке файлов будут храниться другие метаданные, относящиеся к файлу, поэтому использование файловой системы не вариант.
Я думал, что когда пользователи входят в систему и просматривают свои файлы, быстрее будет показать вседанные в одной базе данных SQLite вместо того, чтобы MySQL, просматривали все записи в таблице «file», чтобы извлечь файл одного пользователя по идентификатору.Каждый пользователь может легко иметь более 10000 записей, и изначально будет не менее 400 пользователей.Итак, 400 отдельных баз данных SQLite с 10 000 строк или одна таблица MySQL с 4 миллионами?Учитывая, что все 400 пользователей будут редко (если вообще когда-либо) входить в систему одновременно, кажется неэффективным иметь базу данных для обработки данных для пользователей, которых там нет, даже если они проиндексированы.
Самым большим ограничением SQLite является блокировка, но, к счастью, в этом случае будет только один процесс записи в базу данных, поэтому здесь не должно быть проблем.Дополнительное администрирование резервного копирования отдельных баз данных SQLite тривиально, так как они все равно будут частью инкрементного резервного копирования файловой системы.
Мысли?Мнения?Я задумываюсь над этим?