php - 单个博客表与多个博客表

标签 php mysql

我正在创建一个经典的 php 博客,但对于单个或两个 mysql 表方法有一个困境。

在第一种情况下,实际博客将放置在 actual 表中(最多 100 行),并将存档帖子放置在 archive 表中(最多 20.000 行)。

两个表具有相同的结构。

实际表的查询非常频繁,而对归档表的查询则不那么频繁。

但有时会有 joinunion 查询 - 涵盖两个表。

从逻辑上讲,较小的表上的性能要好得多,但是 - 在我的情况下,这是否有足够的理由创建两个表而不是单个表?

还有第三种解决方案 - 具有两个分区的单个表实际 - 100 行存档 - 20.000 行

要做什么?

最佳答案

你写道:

Logically, performances are much better on a smaller table

恕我直言,对于包含少于一千万行的表,您对此的直觉完全错误。 SQL 的目的是允许从众多项目中快速检索少数项目。程序员数千年的劳动(并不夸张)已经让这种事情变得非常快。您将无法比集体努力更聪明。

将您的项目放在一张表中。如果您需要区分事件和非事件项目,请创建一个名为 active 或类似名称的列,并使用 WHERE active=1 或类似查询术语检索它们。

如果您认为遇到性能问题,可以向表添加索引。读这个。 https://use-the-index-luke.com/

关于php - 单个博客表与多个博客表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49773940/

相关文章:

php - 如何使用第一个下拉列表中选定的值填充第二个下拉列表?

php - 适用于 Mac 的 XAMPP VM 未显示未捕获的异常,返回 500 错误

php - 如何仅从登录的用户数据中搜索搜索输入中的列?

mysql - 缓慢删除mysql中的多条记录

PHP - 解析、正则表达式 CSS 文件?

php - 使用 EZPDF 通过 PHP 从 Mysql 导出时如何使表响应

mysql - 从包含 ID、姓名、薪水三列的表中查找第二高薪水

mysql - 当我使用联接查询时,我得到组合行

mysql After insert trigger on table 1 that insert in table 2 具有更新表 1 的插入后触发器

javascript - 在 JavaScript 中使用 PHP 的 DateTime