天龙八部按登录日期清理垃圾账号及仓库清理操作指南

本站资源仅用于学习交流,禁止商业运营与违法、侵权等非法行为;资源下载后请于 24 小时内删除,违规后果由使用者自行承担。

一、操作前准备

  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. 建议在非高峰时段执行,避免影响游戏正常运行
通过以上步骤,可有效清理长期未登录的垃圾账号和冗余仓库数据,优化数据库性能。
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容