perf(db): incremental document stats cache
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-12-01 12:48:25 -05:00
parent 5e388730a5
commit 3d61d0f5ef
8 changed files with 377 additions and 329 deletions

View File

@@ -28,8 +28,11 @@ type DBManager struct {
//go:embed schema.sql
var ddl string
//go:embed views.sql
var views string
//go:embed user_streaks.sql
var user_streaks_view string
//go:embed document_user_statistics.sql
var document_user_statistics string
//go:embed migrations/*
var migrations embed.FS
@@ -105,7 +108,7 @@ func (dbm *DBManager) init() error {
}
// Execute views
if _, err := dbm.DB.Exec(views, nil); err != nil {
if _, err := dbm.DB.Exec(user_streaks_view, nil); err != nil {
log.Panicf("Error executing views: %v", err)
return err
}
@@ -154,11 +157,7 @@ func (dbm *DBManager) CacheTempTables() error {
log.Debug("Cached 'user_streaks' in: ", time.Since(start))
start = time.Now()
document_statistics_sql := `
DELETE FROM document_user_statistics;
INSERT INTO document_user_statistics SELECT * FROM view_document_user_statistics;
`
if _, err := dbm.DB.ExecContext(dbm.Ctx, document_statistics_sql); err != nil {
if _, err := dbm.DB.ExecContext(dbm.Ctx, document_user_statistics); err != nil {
return err
}
log.Debug("Cached 'document_user_statistics' in: ", time.Since(start))