forgejo/models/issues
Giteabot c3b7120042
Add index to issue_user.issue_id (#27154) (#27158)
Backport #27154 by @JakobDev

This fixes a performance bottleneck. It was discovered by Codeberg.
Every where query on that table (which has grown big over time) uses
this column, but there is no index on it.

See this part of the log which was posted on Matrix:
```
2023/09/10 00:52:01 ...rs/web/repo/issue.go:1446:ViewIssue() [W] [Slow SQL Query] UPDATE `issue_user` SET is_read=? WHERE uid=? AND issue_id=? [true x y] - 51.395434887s
2023/09/10 00:52:01 ...rs/web/repo/issue.go:1447:ViewIssue() [E] ReadBy: Error 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
2023/09/10 00:52:01 ...eb/routing/logger.go:102:func1() [I] router: completed GET /Codeberg/Community/issues/1201 for [::ffff:xxx]:0, 500 Internal Server Error in 52384.2ms @ repo/issue.go:1256(repo.ViewIssue)
```

Co-authored-by: JakobDev <jakobdev@gmx.de>
2023-09-21 11:42:34 +08:00
..
assignees.go
assignees_test.go Replace 'userxx' with 'orgxx' in all test files when the user type is org (#27052) 2023-09-14 02:59:53 +00:00
comment.go More refactoring of db.DefaultContext (#27083) 2023-09-15 06:13:19 +00:00
comment_code.go
comment_list.go
comment_test.go
content_history.go
content_history_test.go
dependency.go
dependency_test.go
issue.go
issue_index.go
issue_label.go
issue_list.go
issue_list_test.go
issue_lock.go
issue_project.go
issue_search.go
issue_stats.go Remove the useless function GetUserIssueStats and move relevant tests to indexer_test.go (#27067) 2023-09-14 12:35:53 -04:00
issue_test.go Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
issue_update.go
issue_user.go Add index to issue_user.issue_id (#27154) (#27158) 2023-09-21 11:42:34 +08:00
issue_user_test.go
issue_watch.go Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
issue_watch_test.go Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
issue_xref.go
issue_xref_test.go Replace 'userxx' with 'orgxx' in all test files when the user type is org (#27052) 2023-09-14 02:59:53 +00:00
label.go Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
label_test.go Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
main_test.go
milestone.go Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
milestone_list.go Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
milestone_test.go Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
pull.go
pull_list.go More refactoring of db.DefaultContext (#27083) 2023-09-15 06:13:19 +00:00
pull_test.go More refactoring of db.DefaultContext (#27083) 2023-09-15 06:13:19 +00:00
reaction.go
reaction_test.go Replace 'userxx' with 'orgxx' in all test files when the user type is org (#27052) 2023-09-14 02:59:53 +00:00
review.go
review_list.go
review_test.go Replace 'userxx' with 'orgxx' in all test files when the user type is org (#27052) 2023-09-14 02:59:53 +00:00
stopwatch.go Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
stopwatch_test.go Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
tracked_time.go
tracked_time_test.go Replace 'userxx' with 'orgxx' in all test files when the user type is org (#27052) 2023-09-14 02:59:53 +00:00