mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-12-04 10:08:08 -06:00
[performance] Database optimizations (#419)
* create first index on notifications * tidy up + add tests * log queries for trace, ops for debug * index commonly used fields * rearrange query * add a few more indexes * remove schema-breaking index (add this back in later) * re-add cleanup query index
This commit is contained in:
parent
07727753b9
commit
8de928b5e9
5 changed files with 427 additions and 8 deletions
|
|
@ -66,9 +66,7 @@ func (n *notificationDB) GetNotifications(ctx context.Context, accountID string,
|
|||
q := n.conn.
|
||||
NewSelect().
|
||||
Model(¬ifications).
|
||||
Column("id").
|
||||
Where("target_account_id = ?", accountID).
|
||||
Order("id DESC")
|
||||
Column("id")
|
||||
|
||||
if maxID != "" {
|
||||
q = q.Where("id < ?", maxID)
|
||||
|
|
@ -78,6 +76,10 @@ func (n *notificationDB) GetNotifications(ctx context.Context, accountID string,
|
|||
q = q.Where("id > ?", sinceID)
|
||||
}
|
||||
|
||||
q = q.
|
||||
Where("target_account_id = ?", accountID).
|
||||
Order("id DESC")
|
||||
|
||||
if limit != 0 {
|
||||
q = q.Limit(limit)
|
||||
}
|
||||
|
|
@ -120,8 +122,7 @@ func (n *notificationDB) putNotificationCache(notif *gtsmodel.Notification) {
|
|||
}
|
||||
|
||||
func (n *notificationDB) getNotificationDB(ctx context.Context, id string, dst *gtsmodel.Notification) error {
|
||||
q := n.newNotificationQ(dst).
|
||||
Where("notification.id = ?", id)
|
||||
q := n.newNotificationQ(dst).WherePK()
|
||||
|
||||
if err := q.Scan(ctx); err != nil {
|
||||
return n.conn.ProcessError(err)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue