Psql multikey (#9852)

* perf: convert promise.all to single query

* perf: single query for removeBulk

* perf: list
This commit is contained in:
Barış Soner Uşaklı
2021-10-01 19:36:42 -04:00
committed by GitHub
parent ea04aeded4
commit e6a17a6349
3 changed files with 60 additions and 60 deletions

View File

@@ -71,25 +71,21 @@ DELETE FROM "legacy_zset"
};
module.sortedSetRemoveBulk = async function (data) {
// const keys = [];
// const values = [];
if (!Array.isArray(data) || !data.length) {
return;
}
const keys = data.map(d => d[0]);
const values = data.map(d => d[1]);
// data.forEach(function (item) {
// keys.push(item[0]);
// values.push(item[1]);
// });
const promises = data.map(item => module.sortedSetRemove(item[0], item[1]));
await Promise.all(promises);
// TODO
// await query({
// name: 'sortedSetRemoveBulk',
// text: `
// DELETE FROM "legacy_zset"
// SELECT k, v
// FROM UNNEST($1::TEXT[], $2::TEXT[]) vs(k, v)`,
// values: [keys, values],
// });
await module.pool.query({
name: 'sortedSetRemoveBulk',
text: `
DELETE FROM "legacy_zset"
WHERE (_key, value) IN (
SELECT k, v
FROM UNNEST($1::TEXT[], $2::TEXT[]) vs(k, v)
)`,
values: [keys, values],
});
};
};