数据库 Discuz用户表主表与存档表合并的方法

[复制链接]
建站高手 发表于 2015-11-11 14:22:31 [数据库] 显示全部楼层 |阅读模式 上一主题 下一主题
discuz使用视频教程

马上注册,一起探讨正确快速的建站方法

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
主要解决discuz x论坛用户表优化后,主表和存档表数据重复的问题。并且删除存档表。其实就是MYSQL的合并表,并且去重复

1、首先在后台计划任务关闭每日用户表优化。
2、关闭站点,做好数据库备份,

下面是我在Discuz x3.2论坛手动操作Discuz用户表主表与存档表合并的步骤

下面例子主表为pre_common_member,存档表为pre_common_member_archive,临时表1为temp_triven,临时表2为pre_common_member_t

select count(*) from pre_common_member_archive;

创建存档表索引
create index ind_b2kw_c1 on  pre_common_member_archive(uid);

创建临时表1(将临时表2数据复制到临时表1)(临时表2为复制的主表,保留结构清空数据)
create table temp_triven  select * from pre_common_member_t where 1=2;

主表数据放入临时表1
insert into temp_triven  select * from pre_common_member;

存档表数据放入临时表1
insert into temp_triven  select * from pre_common_member_archive;

select count(*) from temp_triven;

创建临时表1索引
create index ind_temp_c123 on temp_triven(uid,email,username);

更改索引数据,去掉重复数据
explain select uid,email,username,max(if_robot) from temp_triven FORCE INDEX (ind_temp_c123) group by uid,email,username ;

游客,如果您要查看本帖隐藏内容请回复

删除临时表1
drop table temp_triven;

create index ind_c2kw_c1 on pre_common_member_t(uid);

create index ind_c2kw_c2 on pre_common_member_t(email);

create index ind_c2kw_c3 on pre_common_member_t(username);

清空主表数据
truncate table pre_common_member;

情况存档表数据
truncate table pre_common_member_archive;

3、将临时表2名称修改为pre_common_member

如果主表和存档表不存在重复的情况处理起来会更简单一些,表是从主表分出来的,UID跟用户名是不会重复的,可以直接使用replace更新,这样来得更为简单。





上一篇:新安装discuz论坛出现抱歉,QQ互联功能暂时不可用或Incorrect signature解决方法
下一篇:Discuz!7.2老版本升级x3.2后Uid不一致解决方案

大神点评18

Skyfree 发表于 2015-11-11 16:12:29 [数据库] 显示全部楼层
为什么要合并?LZ确定两表数据有重复吗?执行DZ后台的用户表优化,就会自动把长期不登录、永久禁言这类用户移动到存档表,而如果位于存档表中的用户登录了,数据又会自动从存档表回到主表,不是吗?
ARCHY明星会员实名认证 发表于 2015-11-11 16:26:37 [数据库] 显示全部楼层
Skyfree 发表于 2015-11-11 16:12
为什么要合并?LZ确定两表数据有重复吗?执行DZ后台的用户表优化,就会自动把长期不登录、永久禁言这类用户 ...

一般不会去合并的

存档表的用户默认登录就会激活,不过有些场景使用可能会存在问题,所以才会去合并,
Skyfree 发表于 2015-11-11 22:36:26 [数据库] 显示全部楼层
ARCHY 发表于 2015-11-11 16:26
一般不会去合并的

存档表的用户默认登录就会激活,不过有些场景使用可能会存在问题,所以才会去合并,

好的。
jacknewab 发表于 2015-11-13 16:21:00 [数据库] 显示全部楼层
强烈支持,站帮网有你更精彩
1962257451 发表于 2015-11-28 19:27:25 [数据库] 显示全部楼层
很给力,希望分享更多给力的帖子啊。
中名论坛 发表于 2015-12-21 15:31:35 [数据库] 显示全部楼层
很给力,希望分享更多给力的帖子啊。
中名论坛www.zm30.com
globetour 发表于 2016-8-22 11:18:09 [数据库] 显示全部楼层
强烈支持,站帮网有你更精彩
allensolar 发表于 2016-11-24 21:41:31 [数据库] 显示全部楼层
很给力,希望分享更多给力的帖子啊。
微圈子 发表于 2017-2-10 12:56:18 [数据库] 显示全部楼层
强烈支持,站帮网有你更精彩
KEVIN.G 发表于 2017-6-16 00:08:34 [数据库] 显示全部楼层
看看 怎么弄
李子木 发表于 2017-6-24 17:36:57 [数据库] 显示全部楼层
强烈支持,站帮网有你更精彩
halfsmoke 发表于 2017-7-28 14:40:18 [数据库] 显示全部楼层
求查看
和创财税 发表于 2017-9-27 10:14:33 [数据库] 显示全部楼层
强烈支持,站帮网有你更精彩
www.hsh9191.com  注册公司流程
foolpoker 发表于 2017-12-25 14:01:44 [数据库] 显示全部楼层
很给力,希望分享更多给力的帖子啊。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

快速回复 返回顶部 返回列表