Какова производительность, использование диска и скорость составного индекса (с индексом массива) и составного индекса с отдельным индексом массива?
Допустим, у меня есть документ со структурой, подобной этой
key1:value1,
key2:value2,
key3:value3,
key4:value4,
data:[
value5,
value6,
value7,
},
key8:value8
Из того, что я понимаю в Couchbase N1QL, если я создаю индекс и запрос, аналогичный:
CREATE INDEX indx_data ON document(key1,key4, ALL DISTINCT ARRAY v FOR v IN data END
SELECT * FROM document WHERE key1=value1 AND key4=value4 AND ANY v IN data SATISFIES v=value5 END AND ANY v IN data SATISFIES v=value6
Первая часть индекса будет использоваться в запросе, но со вторым значением для данных (ANY v IN data SATISFIES v=value6
) индекс не будет использоваться? Так что было бы лучше иметь индекс для key1 и key4, а затем отдельный индекс для массива, чтобы можно было сравнить его? Или есть способ использовать составной индекс, включая массив?
Также еще один вопрос, который только что появился:
Лучше иметь документ для индексации, как я только что представил или похож на:
key1:value1,
key2:value2,
key3:value3,
key4:value4,
data:{
key5:value5,
key6:value6,
key7:value7,
},
key8:value8
Этот вопрос также производительность