InnoDB 主键的选择:自增ID & 业务ID

这篇文章是我从淘宝的一个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表有何区别? 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值