perf: optimize indexing speed with batching and incremental sync

- Batching BDD: group INSERT/UPDATE operations in batches of 100 using UNNEST
- Incremental MeiliSearch: only sync books modified since last sync
- Optimized fingerprint: use only size+mtime+filename (100x faster)
- Increased DB connections from 5 to 20
- Reduced progress update frequency (every 1s or 10 files)
- Add sync_metadata table to track last MeiliSearch sync
This commit is contained in:
2026-03-06 22:09:37 +01:00
parent ee76090265
commit d5d582db57
4 changed files with 498 additions and 158 deletions

View File

@@ -0,0 +1,6 @@
CREATE TABLE IF NOT EXISTS sync_metadata (
id INTEGER PRIMARY KEY,
last_meili_sync TIMESTAMPTZ
);
INSERT INTO sync_metadata (id, last_meili_sync) VALUES (1, NULL) ON CONFLICT DO NOTHING;