Файловый сервер против скорости запросов к БД
У меня есть очень простые данные, которые мне нужно извлечь как можно быстрее: у меня есть данные JSON, связанные с хэшем электронной почты. Итак, таблица выглядит так:
email_sha256, json
и имеет миллионы строк.
Мне было интересно, если один из следующих двух вариантов будет быстрее:
1 Split the single large table into many smallers (split by alphabetical order)
2 Do not use a DB at all and serve the data as files. i.e. every email hash is the name of a separate file that contains the json data.
1 ответ
Создание файла для каждого пользователя (для каждого адреса электронной почты) выглядит так неправильно для многих аспектов:
- Если вам нужна хорошая производительность, вам нужно небольшое количество файлов в каталоге
- Для этого были созданы БД, у вас может быть индекс для быстрого поиска информации.
- Без БД у вас должен быть свой собственный механизм блокировки / синхронизации
- Если вы используете БД, зачем использовать json для хранения данных.
- Если вы ищете производительность, не сериализуйте данные в json.
- Что вы имеете в виду под "быстрым", можете ли вы измерить эту продолжительность / задержку?
Если (возможно) информация, связанная с пользователем, не будет огромной (размер должен быть намного больше одного сектора). Но опять же, в данном случае, что вы подразумеваете под постом?