高效的查询,表桥/索引和结构

时间:2012-11-06 02:49:49

标签: mysql sql database

在我的PhpMyAdmin数据库中,我有9个表。其中8个表目前与我有关。我希望我的查询能够足够快地执行,但我不确定表格的设计/结构是否最有效。是否有将表与另一个表合并或创建另一个桥表的建议?此外,我正在努力构建一个查询,该查询将显示以下表格的桥接结果:semesterscheduleoffice_hoursfacultysection,{ {1}},major_minormajor_class_br

TABLE STRUCTURE

基本查询 - 显示课程详情

class

2 个答案:

答案 0 :(得分:1)

'查询要足够快地执行'

INSERT或SELECT?

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

如果你想让你的SELECT快,那就去正规化它(这当然会让INSERT的UPDATE复杂而缓慢)

如果你的主表(时间表?)有< 10,000条记录,它是一个体面的RDBMS,然后它可能会尽可能快地运行。

通常情况下,性能调整过程涉及

  1. 识别工作负载(我经常运行哪些查询)
  2. 获取基线(他们需要多长时间才能运行)
  3. 调整(添加索引,更改设计)
  4. 重复
  5. 因此,我们确实需要了解哪些查询的执行速度很慢,或者您希望在哪些表中实现哪种增长。

    我不确定'桥结果'是什么意思。当你按照物理图表加入一个连接表的查询时会发生什么?错误或意外的结果?

答案 1 :(得分:1)

这是一个开始:

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

目前还不清楚office_hours如何与日程安排相关联?