mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 20:57:31 +00:00
perf(eventstore): add instance position index (#9837)
# Which Problems Are Solved
Some projection queries took a long time to run. It seems that 1 or more
queries couldn't make proper use of the `es_projection` index. This
might be because of a specific complexity aggregate_type and event_type
arguments, making the index unfeasible for postgres.
# How the Problems Are Solved
Following the index recommendation, add and index that covers just
instance_id and position.
# Additional Changes
- none
# Additional Context
- Related to https://github.com/zitadel/zitadel/issues/9832
(cherry picked from commit bb56b362a7
)
This commit is contained in:

committed by
Livio Spring

parent
24cbeb64c8
commit
5e48ee2c15
27
cmd/setup/54.go
Normal file
27
cmd/setup/54.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package setup
|
||||
|
||||
import (
|
||||
"context"
|
||||
_ "embed"
|
||||
|
||||
"github.com/zitadel/zitadel/internal/database"
|
||||
"github.com/zitadel/zitadel/internal/eventstore"
|
||||
)
|
||||
|
||||
var (
|
||||
//go:embed 54.sql
|
||||
instancePositionIndex string
|
||||
)
|
||||
|
||||
type InstancePositionIndex struct {
|
||||
dbClient *database.DB
|
||||
}
|
||||
|
||||
func (mig *InstancePositionIndex) Execute(ctx context.Context, _ eventstore.Event) error {
|
||||
_, err := mig.dbClient.ExecContext(ctx, instancePositionIndex)
|
||||
return err
|
||||
}
|
||||
|
||||
func (mig *InstancePositionIndex) String() string {
|
||||
return "54_instance_position_index"
|
||||
}
|
1
cmd/setup/54.sql
Normal file
1
cmd/setup/54.sql
Normal file
@@ -0,0 +1 @@
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS es_instance_position ON eventstore.events2 (instance_id, position);
|
Reference in New Issue
Block a user