Mysql 数据库设计中的优化方法

Mysql 数据库设计中的优化方法,mysql,optimization,database-design,Mysql,Optimization,Database Design,我在mysql数据库中有一个表POSTS,它的列是 Column DataType POSTID Int(11) PK Userid Int(11) FK Content varchar(100) Type TINYINT Type field can take values image, text, video, link, question, repost. 我的问题是,如果这个表预期有太多的条目,比如数十亿个条目,那么这个设

我在mysql数据库中有一个表POSTS,它的列是

Column       DataType
POSTID       Int(11) PK
Userid       Int(11) FK
Content      varchar(100)
Type         TINYINT

Type field can take values image, text, video, link, question, repost.

我的问题是,如果这个表预期有太多的条目,比如数十亿个条目,那么这个设计是最优的。我应该考虑哪些因素?我应该将此表分为多个表,如图像、文本、视频、链接、问题、重新发布,还是选择一个表解决方案?

一个表解决方案是您应该选择的方式,因为它将更易于查询和索引。无论如何,如果您的产品是新的,这个表在很长时间内不会有那么多条目,而预优化是在开发过程中浪费时间的最佳方式

我建议您保持原样,当您在生产中遇到这些问题时,考虑一下已经存在的解决方案(也许SQL引擎不适合这种数据?)


另外,我会将
类型
列类型从
TINYINT
更改为
ENUM

考虑分区。将TINYINT更改为ENUM是正确的,但同样,该产品不是新的,它只是改进,我们在大约100个地方有大约100万条记录,总共有1亿条,然后对于每条记录,我们将处理多种类型的报告(每月),因此,如果我将每月的数据保存在一个表中,我可以再次划分该报告表吗?我想回答这个问题,解决设计优化问题