#ruby-on-rails #ruby #mongodb
#ruby-on-rails #ruby #mongodb
Вопрос:
Я добавляю серию идентификаторов пользователя в документ базы данных mongo, с каждым из них связан номер от 1 до 9. Но это не обязательно последовательно. Так имеет ли смысл добавлять это в мой документ:
{"4" => "user_id1", "7" => "user_id2"}
или
[nil, nil, nil, "user_id1", nil, nil, "user_id2"]
(зная, что существует смещение)
Мне кажется, что использование хэша быстрее с точки зрения ресурсов и времени доступа, но использование массива более чистое и имеет больше логического смысла.
Ответ №1:
Если использование массива более чистое и имеет больше логического смысла, тогда вам следует использовать массив.
У вас всего девять записей, поэтому любая экономия места не будет иметь значения, если вы не имеете дело с миллионами записей. Различия в скорости всего с девятью записями также будут в значительной степени неуместны.
Что касается оптимизации (для памяти или времени), чувства ничего не стоят. Вам нужно профилировать систему (несколько раз), чтобы увидеть, кто на самом деле использует память (или действительно ли происходит заметная потеря памяти вообще) или тратит время. Результаты профилирования обычно удивляют как вас, так и гуру, отсюда предостережение: преждевременная оптимизация — корень всего зла.Всегда начинайте с наиболее естественного представления, чтобы получить чистый, осмысленный и работающий код: оптимизировать чистый и работоспособный фрагмент программного обеспечения намного проще, чем отлаживать кучу сложностей, которые пытаются решить проблемы, которых не существует.