Массив объектов против вложенного объекта?

У меня есть очень простой программный вопрос, на который, я надеюсь, вы сможете пролить свет.

Я сейчас работаю с множеством объектов, и мне было интересно, лучше ли искать контент внутри массива объектов или внутри вложенного объекта?

Например, я могу сохранить один и тот же образец данных следующими двумя способами:

data1 = [ 
{ "id":1, "key1: "value1", "key2:"value2"},
{ "id":2, "key1: "value1", "key2:"value2"},
{ "id":3, "key1: "value1", "key2:"value2"},
{ "id":4, "key1: "value1", "key2:"value2"},
.....
]

а также

data2 = {
"id_1": { "key1: "value1", "key2:"value2"},
"id_2": { "key1: "value1", "key2:"value2"},
"id_3": { "key1: "value1", "key2:"value2"},
"id_4": { "key1: "value1", "key2:"value2"},
.....
}

Теперь необходимо получить определенное свойство от дочернего объекта. И все, что мы знаем, это идентификатор (а не индекс), связанный с ним.

Если бы я использовал метод массива, мне пришлось бы использовать циклы и фильтры массива для доступа к любому контенту / значению в отдельных объектах. Этот метод кажется довольно громоздким, и повторение каждого дочернего объекта кажется мне очень неэффективным. Тем не менее, всякий раз, когда я вижу, как подобные примеры данных внедряются опытными программистами, все они часто используют массивы.

Если бы мне пришлось использовать метод вложенных объектов, все, что мне нужно сделать, это вызватьdata2.id_2.key2 чтобы получить это конкретное значение.

Какой рекомендуемый способ делать вещи? Я буду играть с довольно большими наборами данных, поэтому вариант будет иметь лучшую производительность?