==========
Обновить:
возможно, это не запрос делает indexeddb медленным, а операция сохранения блокирует базу данных. Я получаю данные из webSocket, поэтому в секунду нужно сохранить почти 900 элементов, и я сохраняю их один за другим. Теперь я сохраняю его в памяти, используя функцию "bulkPut", сохраняю все, почти 13 секунд.
Извините за неполное описание и спасибо за помощь!
==========
Сначала я пытаюсь использовать indexeddb, но две вложенные транзакции делают внутреннюю очень медленной. Затем я использую Dexie.js, но все то же самое.
Я имею в виду документ, в котором говорится, что вложенный запрос разрешен, но все примеры представляют собой одиночный запрос.
В моем случае есть два магазина, один называется «ps», а другой — «socket». 'ps' objectStore имеет 4 элемента, но в объектном хранилище сокета может быть 10 000 элементов.
db.ps.toArray().then(lines => {
lines.map(l => {
console.log(l);
console.time(l.name + '_' + 'sockets');
db.socket.where('ps').equals(l.name).toArray().then(sockets => {
console.timeEnd(l.name + '_' + 'sockets');
})
})
})
и вот результаты журнала времени:
67_сокетов: 131583.873046875мс
42_сокеты: 131614.40478515625мс
33_сокеты: 131631.00805664062мс
22_сокеты: 131634.97705078125мс
так в чем проблема? Я думаю, что indexeddb не такой уж и медленный.