- MySQL에서 한 인스턴스에서 모든 샤드의 테이블의 건수를 체크하는 코드
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
"log"
"os"
)
var vtable string = "tbl_post"
var sch string
var vsql string
func main() {
db, err := sql.Open("mysql", "test:test01@tcp(localhost:3306)/test")
if err != nil {
log.Println(err)
os.Exit(1)
}
fmt.Println("Database Connected!")
defer db.Close()
file1, _ := os.Create("count.log") // 파일 출력 설정
defer file1.Close()
var cnt string
var vtable string = ".tbl_reply" // 조회테이블 정의
i := 0 // 스키마 loop
for i < 200 {
vsch := fmt.Sprintf("HOME%03d",i)
fmt.Println(vsch)
vsql := fmt.Sprintf("SELECT count(1) as cnt from "+vsch+vtable)
err = db.QueryRow(vsql).Scan(&cnt)
if err != nil {
log.Println(err)
os.Exit(1)
}
fmt.Printf("count : %s\n", cnt) //화면 출력
fmt.Fprint(file1, vsch) // log 파일로 기록하는 내용
fmt.Fprintf(file1,": %s\n", cnt) // log 파일로 기록하는 내용
i = i + 1
}
db.Close()
}