我正在创建一个经典的php博客,我对这个博客有一个两难的选择 single
或者两个mysql表。
在第一种情况下,实际的博客会放在里面 actual
表(最多100行)和内部存档的文章 archive
表(最多20.000行)。
两个表的结构相同。
查询 actual
table经常摆在table上 archive
不是那么经常。
但有时也有 join
以及 union
查询-覆盖两个表。
从逻辑上讲,在较小的表上性能会更好,但在我的例子中,这是否足以作为创建两个表而不是一个表的理由?
还有第三种解决方案-带有两个分区的单表 actual - 100 rows
以及 archive - 20.000 rows
.
怎么办?
2条答案
按热度按时间wf82jlnq1#
在设计数据库时,不要只考虑如何存储数据;但想想所有可能的情况:
您将如何检索和更新信息?
不同的人会有不同的观点和不同的权限吗?
就你而言,
archive
似乎是actual
table。因此,最好使用一个带有行的表来跟踪归档文件。e3bfsja22#
你写道:
从逻辑上讲,在小table上的表现要好得多
恕我直言,对于包含少于一千万行的表,您的直觉是完全错误的。sql的一个目的是允许从许多项中快速检索一些项。数千年的程序员劳动(毫不夸张地说)使这种事情变得非常迅速。你不可能胜过集体的努力。
把你的东西放在一张table上。如果需要区分活动项和非活动项,请创建一个名为
active
或者类似的东西,然后用WHERE active=1
或者类似的查询词。如果您认为有性能问题,可以向表中添加索引。读这个。https://use-the-index-luke.com/