当前位置: 首页 > 面试题库 >

SQL连接与单个表:性能差异?

弘阳德
2023-03-14
问题内容

我试图坚持保持数据库规范化的做法,但这导致需要运行多个联接查询。如果许多查询使用联接而不是调用可能包含冗余数据的单个表,性能是否会下降?


问题答案:

直到发现瓶颈后,数据库才能正常化。然后,只有在仔细分析后,您才能对它们进行反规范化。

在大多数情况下,拥有一套覆盖面广的索引和最新的统计信息将可以解决大多数性能和阻塞问题,而不会进行任何非规范化。

如果对表进行写入和读取操作,则使用单个表可能会导致性能下降。



 类似资料:
  • 我试图在一个视图中加入3个表;情况是这样的: 我有一张表格,里面有申请住在这所大学校园的学生的信息。我有另一个表,列出了每个学生的霍尔偏好(其中3个)。但是这些首选项中的每一个仅仅是一个ID号,而该ID号在第三个表中有一个对应的Hall名称(没有设计这个数据库……)。 基本上,我在表上有和它们的首选项以及它们的信息,结果类似于... 其中将是。所以现在我要将与第三个表匹配,其中该表包含和。 所以,

  • 问题内容: 我有一个带有用户登录数据的MySQL表。 给定上表,我想通过添加一个称为工期的新单元格来计算注销日期和上一个登录日期之间的时间差。例如,登出日期为‘2011-01-06 10:00:00; 并且以前的登录日期为“ 2011-01-06 09:50:00”。 结果应该看起来像这样。type = login的行不应具有持续时间值。 预先感谢, mawo 问题答案:

  • 我需要连接来自两个不同表的数据,如下所示。仅使用一个sql查询就可以做到这一点吗?如果“key”和“name”在两个表上,那么它们是相同的。表1中的“状态”始终为“-”,表2中的“T”。此外,两个表上的“名称”和“comp”都匹配(例如:Name3-C和Name4-B)<我尝试过“联合”和“加入”,但还没有解决办法! 表1 表2 结果应该是。。。 提前谢谢!

  • 问题内容: 我有一个查询表,说具有字段CityId,CityName的城市 我有一个订单表,其中包含以下字段:CityId,CustId,CompletedOrders,PendingOrders 我想要一个表/报告,列出所有城市中给定客户的订单详细信息,即我需要的结果是: 怎么做 ? 问题答案: 这将返回所需的所有行,但是对于其中不存在的行将返回值,因此您将获得: 取而代之的解决方案取决于您的数

  • T-SQL 组合来自两个或多个表的记录。它用于将两个或多个表中的记录连接到数据库中。JOIN 用于通过使用彼此相等的值连接许多表中的字段。 假设有下面两张表,(a) CUSTOMERS表,记录如下—— (b) 另一个表 ORDERS,记录如下 - 在 SELECT 语句中连接这两个表,如下所示 - 执行上面查询语句,得到以下结果 - 连接在 WHERE 子句中执行。许多运算符将用于连接表,例如:

  • 在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,它们可以在任何时候增加新的数据类型。为不同实体创建新的表,之后通过连接进行查询。 连接可以在语句的子句或子句中建立,似是而非在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。所以