0

当我试图区分这些术语的歧义时,我变得越来越困惑。我有一个查询花费的时间超过了必要的时间,仅仅是因为我无法获得表上的密钥来为其他联接工作。

我在 t1 中只有一个“唯一”列,还有其他 73.8% 是唯一的,我无法弄清楚如何将它们合并为键、约束、索引或我正在寻找的任何内容。

SELECT t1.*, 
    (SELECT
         t3.comments
     FROM dashboard_data.unit_comments As t3
     WHERE t1.sr=t3.sr) comments,
    (SELECT
         t4.priority
     FROM dashboard_data.units_to_ship As t4
     Where t1.rma=t4.rma) priority
FROM report_tables.idle_report As t1

所以,基本上,我想让 SR 和 RMA 成为他们自己的键,这样我就可以在这个查询中使用所有表的键,但是在花了一天时间在网上搜索并阅读不同来源对这些术语的解释之后,我仍然想不通找出我需要做什么来优化这个查询。

我很抱歉,因为我知道这个问题很多,但即使在阅读了其他一些问题和答案之后,我似乎也无法将它们应用于我的具体案例。我什至可以为此使用密钥吗?如果您需要更多信息,请告诉我。另外,我打算粘贴 EXPLAIN SELECT,但我不知道如何轻松格式化制表符分隔 (excel) 副本。我没有在完整的格式参考中看到它。

4

1 回答 1

0

好的,所以我想我可能终于找到了答案。主键是唯一且唯一的,我可以有一个主键并且仍然有单独的索引。所以我会尝试使用 ALTER TABLE 来为 RMA 和 SR 创建索引。

仍然不确定什么是约束,从我收集的内容来看,我猜它只是键或索引的同义词。

这些是我的发现:

  • Indeces OR PKs 可以是单列或多列
  • Indeces OR PKs 可以是前缀
  • 只能有一个PK
  • 可能有很多缺点
  • PK 必须是唯一的
  • 索引可以是唯一的或非唯一的

我在上述陈述中是否正确,我是否遗漏了任何内容(至少对于基本信息)?

于 2010-06-07T20:11:40.660 回答