【发布时间】:2015-05-16 20:26:39
【问题描述】:
我有这张桌子:
CREATE TABLE IF NOT EXISTS `likes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` varchar(40) NOT NULL,
`post_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
这是一个大商店,它让客户喜欢产品。它记录谁喜欢(用户)和什么(帖子ID)。喜欢脸书。
例如: 1 - 玛丽亚 - 233 2 - 约翰 - 527 ...
所以,1 个赞,1 个记录。
如何优化它?允许许多记录?并尽可能快?
我可以使用 KEY 分区吗?有什么例子吗? id int(11) 是不是太小了呢?
非常感谢!
【问题讨论】:
-
是什么让您认为自己的方式存在问题?
-
@HoboSapiens 谢谢你的回答!是的,问题是,这张桌子会变大,我的问题是,它会支持数百万、数十亿的点赞吗?它不会变慢吗? int(11) 还是 bigint?我可以将它分区更快吗?或者,我不知道,当它每秒收到多个赞时,我怎样才能改进这个表更快……这样好吗?
标签: mysql auto-increment partitioning