12 优化物理设计

12 优化物理设计

在逻辑设计向物理设计转化的过程中, 必须做出四个决定

1. 对于每个表, 不仅需要决定是否使用堆表, 聚簇, 索引组织表, 也需要决定是否对表进行分区

2. 需要考虑是否采用冗余的访问结构, 比如索引或物化视图

3. 需要决定如何实现数据约束

4. 必须决定如何将数据保存在数据块中, 包括字段的顺序, 何种数据类型, 每个数据块可以保存多少条记录

最佳字段顺序

将访问频繁的字段放在前面

image

存储在数据块中每一行记录的格式(H=行头, Ln=字段长度, Dn=字段数据), 数据库引擎不知道一条记录中每个字段的偏移量, 例如, 如果需要定位字段3, 必须从字段1开始, 根据字段1的长度定位字段2, 根据字段2的长度, 定位字段3, 依此类推.

例如: 我们有一个250列的表, 当我们执行 select count(column N) 时, count第一列, count第2列, count第250列, 查询所需要的响应时间为:

image

最优的数据类型

转载于:https://www.cnblogs.com/moveofgod/p/4252568.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109572.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Oracle 触发器 (trigger)[通俗易懂]

    Oracle 触发器 (trigger)[通俗易懂]触发器是许多关系数据库系统都提供的一项技术。在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块。1触发器类型触发器在数据库里以独立的对象存储,它与存储过程和

    2022年7月4日
    24
  • LINQ&EF任我行(二)–LinQ to Object (转)

    LINQ&EF任我行(二)–LinQ to Object (转)

    2021年7月9日
    96
  • pycharm30天试用到期_手机软件试用期到了如何继续使用

    pycharm30天试用到期_手机软件试用期到了如何继续使用关注Python联盟,下载永久补丁激活补丁下载地址:添加链接描述提取码:rkuf根据使用前必看文档中内容步骤操作即可。感谢Python联盟

    2025年7月18日
    52
  • linux tomcat 安装教程,Linux安装配置Tomcat教程

    linux tomcat 安装教程,Linux安装配置Tomcat教程本文为你们分享了Linux安装配置Tomcat,供各位参考,具体内容如下1、下载tomcatLinux版本oracle官网下载地址:百度云盘链接:密码:5inw2、在usr目录下新建tomcat目录,然后将下载的tomcat用软件拷贝到这个新建的tomcat目录中3、解压tomcat文件由于文件名有点长,我们应该给解压后的文件夹重命名,以便下面引用方便4、配置环境变…

    2022年6月2日
    45
  • 二叉树层序遍历实现

    二叉树层序遍历实现二叉树的层序遍历下图是一个简单的二叉树例图实现思路:1.创建一个队列用于二叉树的层序遍历。2.将二叉树根节点插入队列中。3.通过while循环遍历二叉树,直至遍历完整个二叉树后则结束循环。4.每次循环开始时先进行出队操作,若当前出队元素为null则证明已经完成层序遍历结束循环循环,若不为null则打印该节点的值,并判断该节点是否存在左右子树,若存在则依次插入队列中。图解上述二叉树的层序遍历过程依次进行图上操作直至最终队列为空时则层序遍历结束。实现代码如下:classTreeNod

    2022年5月11日
    41
  • SpringBoot 实现热部署[通俗易懂]

    SpringBoot 实现热部署[通俗易懂]SpringBoot实现热部署1、添加依赖<!–热部署–><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><ver…

    2022年5月21日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号