1

在我的 PhpMyAdmin 数据库中,我有 9 个表。目前,其中 8 个表与我相关。我希望我的查询能够足够快地执行,但我不确定表的设计/结构是最有效的。有没有将一个表与另一个表合并或创建另一个桥接表的建议?此外,我正在努力构建一个查询,该查询将显示下表中的桥接结果:semester, schedule, office_hours, faculty, section, major_minor, major_class_br, class?

表结构

基本查询 - 显示班级详细信息

SELECT  class_name, class_caption, class_credit_hours, class_description
FROM class  
4

2 回答 2

1

'要足够快地执行的查询'

插入还是选择?

如果您希望您的 INSERT/UPDATE 快速,请将其标准化到第 n 度

如果您希望您的 SELECT 快速,请将其非规范化(这当然会使 INSERT 的 UPDATE 复杂且缓慢)

如果您的主表(计划?)有 < 10,000 条记录并且它是一个不错的 RDBMS,那么它可能运行得尽可能快。

通常,性能调优过程涉及

  1. 识别工作负载(我通常会运行哪些查询)
  2. 获得基线(他们需要多长时间才能运行)
  3. 调整(添加索引,更改设计)
  4. 重复

所以我们真的需要知道什么样的查询执行缓慢,或者你期望在哪些表中增长什么样。

我不确定您所说的“桥梁结果”是什么意思。当您根据物理图构建连接表的查询时会发生什么?错误或意外结果?

于 2012-11-06T03:45:50.320 回答
1

这是一个开始:

select *
from 
schedule 
inner join semester 
on schedule.semester_id = semester.id
inner join office_hours
on office_hours.id = schedule.???

不清楚 office_hours 与日程安排的关系如何?

于 2012-11-06T05:15:11.087 回答