func NewSchemaInfo(rowCacheConf RowCacheConfig, dbAddr string, user, pwd, dbName string, overrides []SchemaOverride) *SchemaInfo { si := &SchemaInfo{ queries: cache.NewLRUCache(128 * 1024 * 1024), tables: make(map[string]*TableInfo), cachePool: NewCachePool(dbName, rowCacheConf, 3*time.Second, 3*time.Second), } var err error si.connPool, err = mysql.Open(dbAddr, user, pwd, dbName) if err != nil { //todo: return error log.Fatal(err) } si.overrides = overrides si.connPool.SetMaxIdleConnNum(100) log.Infof("%+v", si.overrides) si.cachePool.Open() for _, or := range si.overrides { si.CreateOrUpdateTable(or.Name) } si.override() return si }
func (shard *Shard) openDB(addr string) (*mysql.DB, error) { db, err := mysql.Open(addr, shard.cfg.User, shard.cfg.Password, "") if err != nil { return nil, err } db.SetMaxIdleConnNum(100) return db, nil }