Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] 分享下用户表主表与存档表合并的方法

[复制链接]
Triven 发表于 2013-10-19 17:18:31 | 显示全部楼层 |阅读模式
本帖最后由 Triven 于 2013-10-19 17:19 编辑

主要解决大家用户表优化后,主表和存档表数据重复的问题。并且删除存档表。

1.首先在后台计划任务关闭每日用户表优化。
2.操作数据库,我也只是看的教程,下面是我的论坛操作的步骤
下面例子主表为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 ;

将最终数据写入临时表2
insert into pre_common_member_t 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


以防万一,修改前备份数据库!!!关站操作!
 楼主| Triven 发表于 2013-10-19 17:20:40 | 显示全部楼层
其实就是MYSQL的,合并表,并且去重复
回复

使用道具 举报

xiaoyuwxz 发表于 2013-10-19 17:34:38 | 显示全部楼层
表是从主表分出来的,UID跟用户名是不会重复的,可以直接使用replace更新,这样来得更为简单
回复

使用道具 举报

 楼主| Triven 发表于 2013-10-19 17:42:19 | 显示全部楼层
xiaoyuwxz 发表于 2013-10-19 17:34
表是从主表分出来的,UID跟用户名是不会重复的,可以直接使用replace更新,这样来得更为简单

主要是有些是非正常操作,导致主表有过多数据和存档表一样,这个就最难处理了,正常是不会出现这个问题的,其实还有就是解决了很多人想恢复到只有一个表,没有存档表,但是又担心数据丢失的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-24 17:45 , Processed in 0.024201 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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