科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Schema的优化和索引 - 范式和非范式1

Schema的优化和索引 - 范式和非范式1

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Schema的优化和索引 - 范式和非范式

作者:ddvip 来源:ddvip 2009年12月22日

关键字: Schema PHP MySQL

  • 评论
  • 分享微博
  • 分享邮件

Schema的优化和索引 - 范式和非范式1

有很多方法来展现给定的数据。从完全范式到完全的非范式以及介于两者之间。在符合范式的数据库中,每个事实展现一次并且仅仅展现一次而已。相反的,在非范式的数据库,信息重复或者存储在很多的地方。

  如果你不熟悉范式,你应该加强学习了。关于范式,你可以通过一些书和网上资源来学习。在这里,我们主要介绍这一章中你应该明白的知识。让我们看看经典的例子,那就是employee,departments,和department heads.

EMPLOYEE             DEPARTMENT                  HEAD
Jones                      Accounting                       Jones
Smith                      Engineering                     Smith
Brown                     Accounting                       Jones
Green                     Engineering                      Smith

  这种设计问题在于当数据更改的时候,这数据模型就会变得不正常了。如果Brown接管了Accounting部门,我们必须更新多条语句来反映出这个改变,并且这些更新可能还使数据的状态不一致。如果Jones行的HEAD和Brown行的HEAD不同的话,没有方法知道到底那个HEAD是正确的。就像那句老话一样:一个人有两块表,就不会知道准确的时间。更进一步的说,没有员工的时候就不能展现DEPARTMENT.如果我们删除了全部员工,DEPARTMENT的信息也同样的被删除了。为了避免这个问题,我们把这个表分为EMPLOYEE和DEPARTMENT两个实体。结果为两张表:

EMPLOYEE_NAME        DEPARTMENT
Jones                           Accounting
Smith                           Engineering
Brown                          Accounting
Green                           Engineering

 

DEPARTMENT                 HEAD
Accounting                     Jones
Engineering                   Smith

编缉推荐阅读以下文章

Schema的优化和索引 - 关于存储引擎的简单记录 Schema的优化和索引 - 加速ALTER TABLE Schema的优化和索引 - 索引和表的维护 Schema的优化和索引 - 学习一个索引示例 Schema的优化和索引 - 高性能的索引策略 - 索引和锁 Schema的优化和索引 - 高性能的索引策略 - 冗余和重复的索引 Schema的优化和索引 - 高性能的索引策略 - 压缩索引(Packed Indexes) Schema的优化和索引 - 高性能的索引策略 - 使用索引扫描来进行排序 Schema的优化和索引 - 高性能的索引策略 - 覆盖索引(Covering Indexes) Schema的优化和索引 - 高性能的索引策略 - 聚簇索引(Clustered Indexes)

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章