数据库分表

This commit is contained in:
hahwu 2026-04-03 17:43:05 +08:00
parent 4347974b17
commit 52477c5ac6
4 changed files with 15 additions and 20 deletions

View File

@ -385,13 +385,15 @@ func InsertServerData(data *SqlServerModStruct) error {
}
func SavePlayerModData(data *SqlModStruct) error {
sql := "INSERT INTO `t_player_mod` (`mData` , `updateTime` ,`dwUin`) Values (?,?,?) ON DUPLICATE KEY UPDATE `mData` = ? , `updateTime` = ? "
tableName := "t_player_mod_" + fmt.Sprintf("%02d", data.DwUin%100)
sql := "INSERT INTO `" + tableName + "` (`mData` , `updateTime` ,`dwUin`) Values (?,?,?) ON DUPLICATE KEY UPDATE `mData` = ? , `updateTime` = ? "
_, err := SqlDb.Exec(sql, data.ModData, data.UpdataTime, data.DwUin, data.ModData, data.UpdataTime)
return err
}
func InsertPlayerModData(data *SqlModStruct) error {
sql := "insert into t_player_mod (`mData` , `updateTime` ,`dwUin`) Values (?,?,?)"
tableName := "t_player_mod_" + fmt.Sprintf("%02d", data.DwUin%100)
sql := "insert into `" + tableName + "` (`mData` , `updateTime` ,`dwUin`) Values (?,?,?)"
_, err := SqlDb.Exec(sql, data.ModData, data.UpdataTime, data.DwUin)
return err
}

View File

@ -659,6 +659,8 @@ func ReqGmCommand_(player *Player, Command string) error {
From: uid,
Extra: []int{2, 145},
})
case "resetKv":
player.PlayMod.mod_list.Kv.Data = make(map[int]string)
case "debugBeckmarkMsg":
for i := 0; i < 1000000; i++ {
for j := 0; j < 10; j++ {

View File

@ -128,15 +128,17 @@ type PlayerModList struct {
}
func (p *PlayerModData) LoadDataFromDB(dwUin interface{}) bool {
uid := dwUin.(int64)
mod_table := "t_player_mod_" + fmt.Sprintf("%02d", uid%100)
sqlStr := "SELECT * FROM t_player_mod WHERE dwUin = ?"
p.Data = db.SqlModStruct{}
if err := db.SqlDb.Get(&p.Data, sqlStr, dwUin.(int64)); err != nil {
p.IsHaveDataDb = false
} else {
p.IsHaveDataDb = true
if err := db.SqlDb.Get(&p.Data, sqlStr, uid); err != nil {
if err = db.SqlDb.Get(&p.Data, "select * from "+mod_table+" where dwUin = ?", uid); err != nil {
log.Debug("player mod get data failed, dwUin:%d, err:%v\n", uid, err)
return false
}
}
p.Data.DwUin = dwUin.(int64)
p.Data.DwUin = uid
return true
}
@ -144,17 +146,6 @@ func (p *PlayerModData) ClearData() bool {
return true
}
func (p *PlayerModData) SaveDataFromDB(Key interface{}) bool {
//序列化数据
db.FormatAllMemUpdateDb(&p.Data, "t_player_mod", "dwUin")
p.IsHaveDataDb = true
return true
}
func (p *PlayerModData) ReqModData(buf []byte) {
}
// 推送基础数据
func (p *PlayerModData) Reconnect(b bool) []byte {
return []byte{}

View File

@ -83,7 +83,7 @@ CREATE TABLE IF NOT EXISTS `t_player_baseinfo` (
/*==============================================================*/
CREATE TABLE IF NOT EXISTS t_player_mod (
`dwUin` bigint unsigned COMMENT '玩家uid',
`mData` blob DEFAULT NULL COMMENT '数据',
`mData` mediumblob DEFAULT NULL COMMENT '数据',
`updateTime` int unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
primary key (`dwUin`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '玩家模块表';