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

Mysql 高效的查询、表桥/索引和结构,mysql,sql,database,Mysql,Sql,Database,在我的PhpMyAdmin数据库中,我有9个表。目前,这些表格中有8张与我有关。我希望我的查询执行得足够快,但我不确定表的设计/结构是否最有效。有没有将一个表与另一个表合并或创建另一个桥接表的建议?此外,我正在努力构建一个查询,以显示以下表格中的桥接结果:学期,时间表,办公时间,教员,部分,主修,主修,班级 基本查询-显示类详细信息的查询 SELECT class_name, class_caption, class_credit_hours, class_description FROM

在我的PhpMyAdmin数据库中,我有9个表。目前,这些表格中有8张与我有关。我希望我的查询执行得足够快,但我不确定表的设计/结构是否最有效。有没有将一个表与另一个表合并或创建另一个桥接表的建议?此外,我正在努力构建一个查询,以显示以下表格中的桥接结果:
学期
时间表
办公时间
教员
部分
主修
主修
班级

基本查询-显示类详细信息的查询

SELECT  class_name, class_caption, class_credit_hours, class_description
FROM class  

“要足够快地执行查询”

插入还是选择

如果希望插入/更新速度快,请将其正常化到第n度

如果你想让你的选择变得快速,那么去规范化它(这当然会使INSERT的更新变得复杂而缓慢)

如果您的主表(schedule?)有<10000条记录,并且它是一个不错的RDBMS,那么它可能正在以尽可能快的速度运行

通常,性能调优过程包括

  • 确定工作负载(我通常运行哪些查询)
  • 获取基线(运行需要多长时间)
  • 调整(添加索引、更改设计)
  • 重复
  • 因此,我们真的需要知道什么样的查询执行缓慢,或者您希望在哪些表中实现什么样的增长

    我不知道你所说的“桥梁结果”是什么意思。当您构建一个按照物理图连接表的查询时会发生什么?错误或意外结果?

    以下是一个开始:

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

    现在还不清楚办公时间与日程安排之间的关系如何?

    +1谢谢,我不知道如何构建一个查询,以选择除
    事件
    表之外的所有表。您能帮助构建这样的查询吗?“事件表除外”是什么意思?“事件”是否与其他数据有任何关联?您想包括还是排除它?到目前为止,您得出了什么结论?哦,您是对的
    事件
    表与其他数据没有任何关联。我只是想帮助您创建一个查询,该查询将显示所有表(具有相关性)及其各自的值。您只需将它们全部连接起来并选择所需的列?到目前为止你有什么想法?