分类目录归档:DB

MySQL唯一索引添加和用法

一、唯一索引添加与变更
0、建表加唯一索引ukey_o_d_t,使用关键字unique key(如果只是单列唯一索引,可以在字段后加unique, 如topic):

CREATE TABLE `tv_episode_checkin_summary_log` (
  `id` int(11) unsigned NOT NULL auto_increment COMMENT '自增ID',
  `oid` varchar(128) NOT NULL default '0' COMMENT '选项ID',
  `topic` varchar(256) NOT NULL default '' unique COMMENT '话题词',
  `num` int(11) unsigned NOT NULL default '0' COMMENT '数量',
  `type` varchar(2) NOT NULL default '' COMMENT '类型: 1、小时数;2、天数',
  `dtime` bigint(11) unsigned NOT NULL default '0' COMMENT '数据汇总时间',
  `ctime` bigint(11) unsigned NOT NULL default '0' COMMENT '创建时间',
  `mtime` bigint(11) unsigned NOT NULL default '0' COMMENT '修改时间',
  `ext` varchar(64) NOT NULL default '' COMMENT '扩展字段',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `ukey_o_d_t` (`oid`,`dtime`,`type`),
  KEY `key_t_d_t` (`topic`(255),`dtime`,`type`),
  KEY `key_o_d_t` (`oid`,`dtime`,`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='打卡汇总数据表'

继续阅读

线上MySQL数据库迁移的一个方案

对线上正在使用的数据库做迁移,很少遇到这样的情况,考虑到没有长连接, 开始想到的方案很简单:
0、新建一个MySQL主从库
1、旧主单向往新主实时同步(毫秒级),新主不往旧主同步。
2、切换连DB的读账号信息,观察读是否正常。
3、切换连DB的写账号信息。
4、观察一段时间,旧库没有新写入内容即可断开往新主的同步。
继续阅读