我在php中创建了一个博客,用户可以在其中发表评论。我在mysql中创建了一个表,其中包含用户的评论。我的表为每个注释保存它的Id号。我可能有数十亿或数万亿的评论。我的最好的类型是什么?我使用int(11),但我认为这还不够以后.有什么更好的选择吗?
发布于 2014-03-20 14:53:59
我喜欢使用UUID来标识行,因为它们:
有关如何在这个问题中使用UUID,请参见MySQL。
使用UUID将比int稍微慢一些,因为数据量更大,但在我的经验中,UUID提供的灵活性超过了任何性能损失。
发布于 2014-03-20 15:12:57
如果使用的是MyISAM存储引擎,则可以创建一个自动递增的复合键。这样做,您就可以有效地为每个博客文章设置一个单独的序列,这样您就不太可能最大限度地使用int数据类型。
表创建:
CREATE TABLE Comments (
`blog_post_id` int not null,
`comment_id` int not null auto_increment,
`text` text,
primary key(`blog_post_id`,`comment_id`)
) ENGINE = MyISAM;插入(与正常一样):
INSERT INTO Comments (`blog_post_id`,`text`) VALUES
(1,'First!!!'),
(2,'Some sensible comment'),
(1,'OMG... Posting First!! is dumb.'),
(1,'^ I second this...'),
(2,'TURTLES!!'),
(1,'...');数据:
BLOG_POST_ID COMMENT_ID TEXT
1 1 First!!!
1 2 OMG... Posting First!! is dumb.
1 3 ^ I second this...
1 4 ...
2 1 Some sensible comment
2 2 TURTLES!!参见:SQL Fiddle
发布于 2014-03-20 15:06:06
你的桌子blog
blog_id | blog_title | blog | published_date | blabla现在,来了一个blog_comment表
comment_id | blog_id | comment现在,我想你不用担心
https://stackoverflow.com/questions/22536668
复制相似问题