mysql笔记

来源:互联网 发布:开展数据库系统培训 编辑:程序博客网 时间:2024/05/11 05:30

SELECT * FROM gm_drop_record g  ---0.69s  58340   time为时间    联合主键(id,serverId)
actorId 做索引,查询记录为 40484;
顺序为 time+ serverId  +actorId

A:CREATE INDEX gm_drop_record_index ON gm_drop_record(time,serverId,actorId);
B:分区

SELECT * FROM gm_kill_record g; ---136441条  time为时间
索引顺序:time+actorName+typeId+serverId
A:CREATE INDEX gm_kill_record_index ON gm_kill_record(time,actorName,typeId,serverId);
B:按照Time水平分区


SELECT * FROM gm_others_record g;  13701条
索引顺序:
A: time+actorName+typeid+serverId
B:按照Time水平分表

SELECT * FROM gm_quest_record g; 21654条  --任务信息
索引顺序:
A:Time+actorName+serverId+typeid
B:按照Time水平分表


A:定长字段容量整理
B:表字段冗余整理
C:数据分表--按照time水平分区
D:建立索引
E:建立主从库

校验是否支持分区,YES就表示能分区,不能对一个分区使用MyISAM,而对另一个使用InnoDB
SHOW VARIABLES LIKE '%partition%';

CREATE TABLE `gm_drop_record_year_month` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `typeId` int(11) DEFAULT NULL,
  `actorId` int(11) DEFAULT NULL,
  `actorName` varchar(20) DEFAULT NULL,
  `monsterId` int(11) DEFAULT NULL,
  `monsterName` varchar(20) DEFAULT NULL,
  `itemIds` text,
  `itemNames` text,
  `boundSilvers` int(11) DEFAULT NULL,
  `time` datetime DEFAULT NULL,
  `serverId` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `serverId` (`serverId`)
)   ENGINE=INNODB    PARTITION BY time(MONTH(tr_date))    PARTITIONS 12;


DROP TABLE IF EXISTS `gm_drop_record`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `gm_drop_record` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `typeId` int(11) DEFAULT NULL,
  `actorId` int(11) DEFAULT NULL,
  `actorName` varchar(20) DEFAULT NULL,
  `monsterId` int(11) DEFAULT NULL,
  `monsterName` varchar(20) DEFAULT NULL,
  `itemIds` text,
  `itemNames` text,
  `boundSilvers` int(11) DEFAULT NULL,
  `time` datetime DEFAULT NULL,
  `serverId` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `serverId` (`serverId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
PARTITION BY RANGE (MONTH(time))
 (  
 PARTITION gm_drop_record+"_"+YEAR(time)+"_"+MONTH(time) VALUES LESS THAN (month(time)),   
 PARTITION p3 VALUES LESS THAN MAXVALUE
/*
PARTITION p1 VALUES LESS THAN (2),   
PARTITION p2 VALUES LESS THAN (3),  
PARTITION p2 VALUES LESS THAN (4),  
PARTITION p2 VALUES LESS THAN (5),  
PARTITION p2 VALUES LESS THAN (6),  
PARTITION p2 VALUES LESS THAN (7),  
PARTITION p2 VALUES LESS THAN (8),  
PARTITION p2 VALUES LESS THAN (9),  
PARTITION p2 VALUES LESS THAN (10),  
PARTITION p2 VALUES LESS THAN (11),  
PARTITION p2 VALUES LESS THAN (12),  
*/
);


1:搭建主从库,测试性能--------需要测试服务器,上面安装一个主库,两个从库;
优势:
读写分离


备份在从库上进行操作-----编写job进行从库同步到另一个从库上去,然后进行分析;

也基本实现了负载均衡测试,主库挂了,会自动切换到从库进行访问,这个需要测试?


2:编写job任务
3:数据优化
A:定长字段容量整理
B:表字段冗余整理
C:数据分表--按照time水平分区
D:建立索引

4:熟悉负载均衡的搭建

 


 

原创粉丝点击