eeb13a02ba
`searchNotificationAvailable` never effectively use any indexes because: - `notified_at < $1`, where $1 is a recent timestamp, returns the majority of the table and therefore it is cheaper for PostgreSQL to use a sequential scan on the table. - there is no index for `deleted_at IS NULL`. However, when Clair has been running for long enough, the grand majority of rows (99%+) are expected to have a non-NULL `deleted_at` field. This commit adds a new index on this very field in order to fetch the remaining 1% in the blink of an eye. In other words, instead of realizing a full table scan for each `searchNotificationAvailable` query, we'll use the small branch of a new index, reducing the total cost from over 30k to a mere 150 on a Clair database that has already managed more than 1 000 000 notifications. |
||
---|---|---|
.. | ||
00001_change_migrator.go | ||
00002_initial_schema.go | ||
00003_add_indexes.go | ||
00004_add_index_notification_deleted_at.go | ||
00004_ldfv_index.go | ||
migrations.go |