Сокращение дискового пространства, необходимого в Nodejs/Expressjs/Feathersjs для идентификатора пользователя
Я работаю над своим первым проектом на основе nodejs, используя Feathersjs в качестве бэкэнда и Vue в качестве внешнего интерфейса. Когда я смотрю в базу данных, то идентификатор пользователя представляет собой строку символов, которая выглядит примерно так: "IXS1rCoGogkdOOss".
Кажется, что он будет использовать больше места для хранения, чем необходимо, когда достаточно целочисленного идентификатора пользователя.
Можно ли как-то уменьшить требования к объему памяти?
Возможно, имея идентификатор пользователя в виде целого числа в базе данных вместо текстовой строки?
Я пытался просмотреть код, но не могу найти, где происходит назначение идентификатора пользователя. Я новичок как в javascipt, так и в node.js и просто не могу разобраться с этим. Поиск по этому сайту и поиск в Google также ничего не нашли.
И причина, по которой кажется хорошей идеей уменьшить размер хранилища идентификатора пользователя, заключается в том, что это будет мультитенантный SaaS с менее чем 10 тысячами пользователей, но близко к миллиарду строк, содержащих идентификатор пользователя.
Спасибо за помощь!
редактировать
Я буду использовать Postgres в производстве, но сначала использовал NeDB, чтобы опробовать его.
Таблицы с множеством строк в них состоят из 3 значений int плюс первичный ключ (который представляет собой int + идентификатор пользователя).
1 ответ
Это полностью зависит от базы данных, которую вы используете. MongoDB, Mongoose используют MongoDB ObjectIds, а NeDB использует аналогичное значение. Для этих баз данных нетрудно изменить основной идентификатор на что-то другое.
База данных SQL, которую можно использовать через адаптеры Sequelize или KnexJS, обычно использует целые числа в качестве первичного ключа.
В общей схеме, если записи вашей базы данных состоят из чего-то большего, чем одно другое значение, количество символов в свойстве id не имеет большого значения, когда дело доходит до фактического размера.