Add SQL execution on log and indexes on table repository and comment (#7740)

* add index on comment

* add SQL execution time on log and index owner_id on repository

* add migration
This commit is contained in:
Lunny Xiao 2019-08-05 22:29:40 +08:00 committed by Lauris BH
parent 52feff5a5c
commit 7b009626da
5 changed files with 36 additions and 6 deletions

View file

@ -99,10 +99,10 @@ const (
// Comment represents a comment in commit and issue page. // Comment represents a comment in commit and issue page.
type Comment struct { type Comment struct {
ID int64 `xorm:"pk autoincr"` ID int64 `xorm:"pk autoincr"`
Type CommentType Type CommentType `xorm:"index"`
PosterID int64 `xorm:"INDEX"` PosterID int64 `xorm:"INDEX"`
Poster *User `xorm:"-"` Poster *User `xorm:"-"`
OriginalAuthor string OriginalAuthor string
OriginalAuthorID int64 OriginalAuthorID int64
IssueID int64 `xorm:"INDEX"` IssueID int64 `xorm:"INDEX"`
@ -143,7 +143,7 @@ type Comment struct {
ShowTag CommentTag `xorm:"-"` ShowTag CommentTag `xorm:"-"`
Review *Review `xorm:"-"` Review *Review `xorm:"-"`
ReviewID int64 ReviewID int64 `xorm:"index"`
Invalidated bool Invalidated bool
} }

View file

@ -236,6 +236,8 @@ var migrations = []Migration{
NewMigration("add original author/url migration info to issues, comments, and repo ", addOriginalMigrationInfo), NewMigration("add original author/url migration info to issues, comments, and repo ", addOriginalMigrationInfo),
// v90 -> v91 // v90 -> v91
NewMigration("change length of some repository columns", changeSomeColumnsLengthOfRepo), NewMigration("change length of some repository columns", changeSomeColumnsLengthOfRepo),
// v91 -> v92
NewMigration("add index on owner_id of repository and type, review_id of comment", addIndexOnRepositoryAndComment),
} }
// Migrate database to current version // Migrate database to current version

26
models/migrations/v91.go Normal file
View file

@ -0,0 +1,26 @@
// Copyright 2019 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package migrations
import "github.com/go-xorm/xorm"
func addIndexOnRepositoryAndComment(x *xorm.Engine) error {
type Repository struct {
ID int64 `xorm:"pk autoincr"`
OwnerID int64 `xorm:"index"`
}
if err := x.Sync2(new(Repository)); err != nil {
return err
}
type Comment struct {
ID int64 `xorm:"pk autoincr"`
Type int `xorm:"index"`
ReviewID int64 `xorm:"index"`
}
return x.Sync2(new(Comment))
}

View file

@ -262,6 +262,7 @@ func NewTestEngine(x *xorm.Engine) (err error) {
return fmt.Errorf("Connect to database: %v", err) return fmt.Errorf("Connect to database: %v", err)
} }
x.ShowExecTime(true)
x.SetMapper(core.GonicMapper{}) x.SetMapper(core.GonicMapper{})
x.SetLogger(NewXORMLogger(!setting.ProdMode)) x.SetLogger(NewXORMLogger(!setting.ProdMode))
x.ShowSQL(!setting.ProdMode) x.ShowSQL(!setting.ProdMode)
@ -275,6 +276,7 @@ func SetEngine() (err error) {
return fmt.Errorf("Failed to connect to database: %v", err) return fmt.Errorf("Failed to connect to database: %v", err)
} }
x.ShowExecTime(true)
x.SetMapper(core.GonicMapper{}) x.SetMapper(core.GonicMapper{})
// WARNING: for serv command, MUST remove the output to os.stdout, // WARNING: for serv command, MUST remove the output to os.stdout,
// so use log file to instead print to stdout. // so use log file to instead print to stdout.

View file

@ -129,7 +129,7 @@ func NewRepoContext() {
// Repository represents a git repository. // Repository represents a git repository.
type Repository struct { type Repository struct {
ID int64 `xorm:"pk autoincr"` ID int64 `xorm:"pk autoincr"`
OwnerID int64 `xorm:"UNIQUE(s)"` OwnerID int64 `xorm:"UNIQUE(s) index"`
OwnerName string `xorm:"-"` OwnerName string `xorm:"-"`
Owner *User `xorm:"-"` Owner *User `xorm:"-"`
LowerName string `xorm:"UNIQUE(s) INDEX NOT NULL"` LowerName string `xorm:"UNIQUE(s) INDEX NOT NULL"`