亿级用户表优化机制

靖西网牛牛动态域名 2016-10-12
[post]双索引分表:
    1、根据用户UID进行分表。
    2、根据用户创建分表,只用于内部转换字符串用户名与内部UID之间的对应关系,即用户名索引表。当提交用户名查询信息时,内部先查询索引分表转换成UID,再对UID分表进行查询

    3、对已经创建的表进行分区:对xx表分成十个分区
alter table `xx`  
partition by  hash(uid)  
partitions 10;


     4、创建分区表:

CREATE TABLE `my_orders` (  
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '表主键',  
  `pid` int(10) unsigned NOT NULL COMMENT '产品ID',  
  `price` decimal(15,2) NOT NULL COMMENT '单价',  
  `num` int(11) NOT NULL COMMENT '购买数量',  
  `uid` int(10) unsigned NOT NULL COMMENT '客户ID',  
  `atime` datetime NOT NULL COMMENT '下单时间',  
  `utime` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '修改时间',  
  `isdel` tinyint(4) NOT NULL DEFAULT '0' COMMENT '软删除标识',  
  PRIMARY KEY (`id`,`atime`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8  

/*********分区信息**************/  
PARTITION BY RANGE (YEAR(atime))  
(  
   PARTITION p0 VALUES LESS THAN (2016),  
   PARTITION p1 VALUES LESS THAN (2017),  
   PARTITION p2 VALUES LESS THAN MAXVALUE  
);  

附同步数据语句 Insert into aaa select * from aaa2;
[/post]

浏览843878 / 回复8
举报内容

竖线最新回复

2017-07-14
[post]CREATE TABLE `gxbs0505_tid_bidvalue` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `tid` int(11) DEFAULT NULL,   `fid` int(11) DEFAULT NULL,   `uid` int(11) DEFAULT NULL,   `bid` int(11) DEFAULT NULL,   `keyname` varchar(50) DEFAULT NULL,   `valuess` varchar(255) DEFAULT NULL,   PRIMARY KEY (`id`),   KEY `tid` (`tid`),   KEY `fid` (`fid`),   KEY `uid` (`uid`),   KEY `bid` (`bid`),   KEY `keyname` (`keyname`) ) ENGINE=MyISAM DEFAULT CHARSET=gbk COMMENT='报名数据表'[/post]
回复
7楼 1
2017-07-17
回复看看
回复
8楼 1

全部回复

竖线全部回复

1楼 tyu0987
2016-10-12
    
回复
1
2016-10-12
回复
1
3楼 李沛煜
2016-10-12
回复
1
2017-07-14
回复
1
2017-07-14
回复
1
返回 [发帖] 发回复:评论……

+
提交评论