InnoDB 主键的选择:自增ID & 业务ID
2013-11-13 11:09
316 查看
这篇文章是我从淘宝的一个PPT文档中整理的,就不好意思的定为原创吧,截图也挺麻烦的,呵呵
CREATE TABLE `a` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`message_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`msg` varchar(1024) DEFAULT NULL,
`gmt_create` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`,`message_id`),
KEY `idx_gmt_create` (`gmt_create`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
CREATE TABLE `b` (
`user_id` int(11) NOT NULL,
`message_id` int(11) NOT NULL,
`msg` varchar(1024) DEFAULT NULL,
`gmt_create` datetime NOT NULL,
PRIMARY KEY (`user_id`,`message_id`),
KEY `idx_gmt_create` (`gmt_create`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
大多数互联网业务(用户,消息),都可以选择a或者b来满足业务需求,但a表和b表有何区别?
CREATE TABLE `a` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`message_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`msg` varchar(1024) DEFAULT NULL,
`gmt_create` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`,`message_id`),
KEY `idx_gmt_create` (`gmt_create`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
CREATE TABLE `b` (
`user_id` int(11) NOT NULL,
`message_id` int(11) NOT NULL,
`msg` varchar(1024) DEFAULT NULL,
`gmt_create` datetime NOT NULL,
PRIMARY KEY (`user_id`,`message_id`),
KEY `idx_gmt_create` (`gmt_create`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
大多数互联网业务(用户,消息),都可以选择a或者b来满足业务需求,但a表和b表有何区别?
相关文章推荐
- InnoDB 主键的选择:自增ID & 业务ID
- InnoDB 主键的选择:自增ID & 业务ID
- 无特殊需求下Innodb建议使用与业务无关的自增ID作为主键
- CREATE UNIQUE INDEX 终止,因为发现了索引 ID 1 的重复键。最重要的主键为 'type 6c, len 9'。
- 业务主键、逻辑主键的选择
- Jquery选择器,选择ID以"某某"字符开头的一组文本框只能输入数字
- Annotation注解归总&ID生成策略&联合主键及hql中的条件查询写法
- jquery 选择多个id:$("#id1,#id2,#id3,#id4")
- Mysql数据库 hibernate保存数据时,Mysql主键需设定自增,否则报错!(Field 'id' doesn't have a default value)
- Hibernate3.2(10):联合主键<composite-id.../>
- mysql insert一条记录(事务提交之前)怎样返回创建记录的主键id,last_insert_id(),selectkey && <select> 标签属性
- if(StringUtils.isNotEmpty(id)&&StringUtils.isNotEmpty(expertId)){//进行判断是不是id和选择专家的id判断是否为空
- 主键的选择,应该是业务有意义还是业务无意义,应该是逻辑主键还是业务主键
- 【Hibernate框架开发之四】Hibernate-Annotation常用的注解归总&&ID的生成策略&&联合主键
- 面试宝典系列-InnoDB的主键选择与优化
- InnoDB的主键选择与插入优化
- Innodb&nbsp;没有主键的表插入性能问题
- Mysql数据库 hibernate保存数据时,Mysql主键需设定自增,否则报错!(Field 'id' doesn't have a default value)
- 数据库表设计关于"主键"选择乱谈
- 【Hibernate框架开发之四】Hibernate-Annotation常用的注解归总&&ID的生成策略&&联合主键