diff --git a/database/explain.go b/database/explain.go index b06587a1c15774733b8caa266ab0c9d32bf9e56d..022fbb68c906268d10e19d8dd024e6a50a137452 100644 --- a/database/explain.go +++ b/database/explain.go @@ -564,6 +564,11 @@ func (db *Connector) explainQuery(sql string, explainType int, formatType int) s sql, err = db.explainAbleSQL(sql) if sql == "" || err != nil { return sql + } else { + // MySQL 5.7 support MAX_EXECUTION_TIME hint + // ref: https://dev.mysql.com/doc/refman/5.7/en/optimizer-hints.html + re := regexp.MustCompile(`(?i)(^select)(.*)`) + sql = re.ReplaceAllString(sql, "SELECT /*+ MAX_EXECUTION_TIME(1000) */${2}") } // 5.6以上支持 FORMAT=JSON