一、操作前准备

  1. 数据库备份:操作前务必完整备份muonline数据库,建议使用数据库管理工具的 “备份数据库” 功能,保存为.bak 文件备用
  2. 工具准备:打开 SQL 查询分析器,确保已连接到muonline数据库
  3. 注意事项:整个过程需按顺序执行,不要跳过或颠倒步骤

二、按登录日期清理垃圾账号(保留指定日期后登录过的账号)

步骤 1:创建活跃账号备份表

select * into membstat from memb_stat where connecttm > ‘年/月/日’
  • 说明:将memb_stat表中所有在指定日期后登录过的账号数据,备份到新表membstat
  • 示例:connecttm > '2023/01/01' 表示保留 2023 年 1 月 1 日后登录过的账号

步骤 2-3:重建 memb_stat 表

truncate table memb_stat
insert into memb_stat select * from membstat
  • 说明:清空原memb_stat表,仅保留步骤 1 中备份的活跃账号数据

步骤 4-6:重建 memb_info 表

— 步骤4:备份活跃账号的信息
select * into membinfo from memb_info where memb___id in
(select memb_info.memb___id
from memb_info,membstat
where memb_info.memb___id=membstat.memb___id)
— 步骤5:清空原表(执行前需先移除memb___id列的identity属性)
truncate table memb_info
— 步骤6:恢复活跃账号信息
insert into memb_info select * from membinfo
  • 关键操作:执行步骤 5 前必须取消memb___id列的自增 (identity) 属性,完成后需重新开启

步骤 7-9:重建 accountcharacter 表

— 步骤7:备份活跃账号的角色关联数据
select * into accountchbak from accountcharacter where id in
(select accountcharacter.id
from accountcharacter,membstat
where accountcharacter.id=membstat.memb___id)
— 步骤8:清空原表
truncate table accountcharacter
— 步骤9:恢复活跃账号的角色关联数据
insert into accountcharacter select * from accountchbak
  • 关键操作:
    1. 执行前需修改accountcharacter表的id列排序规则,勾选 “区分大小写”
    2. 移除Number列的 identity 属性
    3. 完成后需恢复原排序规则和属性

步骤 10-12:重建 character 表

— 步骤10:备份活跃账号的角色数据
select * into characterbak from character where accountid in
(select character.accountid
from character,membstat
where character.accountid=membstat.memb___id)
— 步骤11:清空原角色表
delete from character
— 步骤12:恢复活跃账号的角色数据
insert into character select * from characterbak
  • 关键操作:执行前需修改characteraccountid列的排序规则(同步骤 7 的设置),完成后恢复

三、仓库清理(删除空记录和重复记录)

步骤 13:删除空仓库记录

delete from warehouse where items is null
  • 说明:清除所有物品为空的仓库记录

步骤 14-17:删除重复仓库记录

— 步骤14:创建去重后的仓库备份表
select distinct * into warehousebak from warehouse
— 步骤15:(可选)查看有重复仓库记录的账号
select accountid from warehousebak group by accountid having count(*)>1
— 步骤16:清空原仓库表
truncate table warehouse
— 步骤17:恢复去重后的仓库数据
insert into warehouse select * from warehousebak

四、收尾工作

  1. 删除临时表:执行完成后删除以下临时备份表
    drop table warehousebak, characterbak, accountchbak, membinfo, membstat
  2. 验证数据:检查各表数据是否完整,可登录游戏测试账号是否正常
  3. 重新备份:清理完成后建议再次备份数据库,作为新的基准备份

五、风险提示

  1. 所有涉及truncatedelete的操作均不可逆,请确保备份完整
  2. 修改表结构(如 identity 属性、排序规则)时,建议记录原始设置以便恢复
  3. 操作过程中若出现错误,立即停止并使用初始备份恢复数据库
  4. 建议在非高峰时段执行,避免影响游戏正常运行
通过以上步骤,可有效清理长期未登录的垃圾账号和冗余仓库数据,优化数据库性能。
声明:
1:本站内容如若侵犯到您的权益,请联系我们,我们会第一时间删除!联系:12225150@qq.com。
2:使用本站资源需要您有一定的技术基础,否则将无法使用,如果你没有相关技术知识,请勿下载,虚拟物品,概不退换。
3:本站游戏资源不保证代码的完整性,不保证游戏无BUG,要求完美者请勿下载。
4:本站所有资源标价皆是资源本身的价格,不包含任何技术服务!要包技术服务的价格肯定是不一样的。
5:本站资源旨在为全网技术爱好者或游戏开发人员提供游戏素材,方便您作为技术研究或开发学习等用途,请勿商用。
6:本站资源非您个人定制,所以里面的游戏玩法,游戏画面以及游戏设定,装备掉落,金币等游戏初始值可能都不是您期望的效果,您需要自行研究修改完善,或找专业人员按您的想法定制。