从Twitter存储推文使用哪种MySQL数据类型?

3
我需要存储大量的Twitter推文。
哪种数据库类型最适合推文?最好的猜测是使用TEXT
我也需要防止重复。最好的猜测是使用varchar(255)并添加一个UNIQUE key
也许varchar(140)字符应该可以工作,但我们也有中文字符?(这将节省很多空间)
另一个想法是将所有推文存储为TEXT,并添加另一列用于将推文哈希到MD5,并在该列上添加UNIQUE key
问题:什么是存储推文的最佳MySQL类型?

3
对于那些投票关闭/负评的人,使用“最佳”这个词并不意味着提问者一定在寻求主观答案。我们不是在寻找“最好的数据库”,而是在寻找最适合的数据类型。这之间有很大的区别。 - Kirk Woll
Twitter是否存储所有推文,每个推文是否都有一个关联的ID,可以通过API检索推文? - Jared
将推文哈希为md5?<我可以向该列添加主键或唯一键,但不能添加到TEXT列中。 - Lupo
1
为什么要添加唯一约束?如果有人发推文“Hello World!”,那我就不能再转发了!除非我没有理解需求。 - Tyler
你可能也想在这个表上进行相似性搜索(全文搜索),这意味着你必须使用MYISAM,或者等待5.6.4 InnoDB。 - Neil McGuigan
显示剩余2条评论
3个回答

5

编辑

Twitter不再计算用户句柄(等等)在140个字符限制中,因此 varchar(140)将无法足以存储带有用户句柄的长推文的全部内容。

但是,经过检查,当提到另一个Twitter用户时,我仍然无法超过140个字符。

原始答案

utf8 格式的 varchar(140)

TEXT 将非常低效。 char(140)会浪费太多空间。

虽然这并不支持我的答案,但它仍然是有关技术和效率的有趣阅读材料


2

2
一条推文最多只能有140个字符,所以我肯定会使用这个限制。varchar(140)是我会使用的数据类型。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接