zoukankan      html  css  js  c++  java
  • 优化数据库对象

    优化数据库对象

    目录:

    n  优化表的数据类型

    n  通过拆分提高表的访问效率

    n  适度冗余

    n  使用中间表提高统计查询速度

    1. 优化表的数据类型

    优化数据类型提高性能的原理:

    (1)     通过选用更”小”的数据类型减少存储空间,使查询相同的数据需要的IO资源降低

    (2)     使用合适的数据类型加速数据的比较

    Char 固定长度字符类型 存放长度以字符个数来计算,有字符个数的限制 最终最大存储长度基于字符集

    Varchar 可变长度字符类型 存储长度有字节限制 最大(65535字节)

    可通过proceduce analyse()对表中的字符提出优化建议

    2. 通过拆分提高表的访问效率

    (1)     垂直拆分

    把一张表的主码和一些列放在一个表,然后主码和另外的列放在另一个表中。

    如果一个表中某些列常用,而另外一些列不常用,则可采用垂直拆分

    优点:可以使查询的数据列变小,一个数据页能存放更多的数据,在查询时就可以减少IO次数

    缺点:需要管理冗余列,查询所有数据需要联合(join)操作

    (2)     水平拆分

    根据一列或多列数据的值,把数据行存放到多张表中

    水平拆分在以下情况考虑使用:

    1. 表很大
    2. 表中的数据本来就有独立性
    3. 需要把数据存放到多个介质上

    3. 适度冗余(让Query减少join)

    常用反规范技术现象:

    (1)     增加冗余列(查询时减少连接操作)

    (2)     增加派生列(减少连接操作、避免使用集合函数、提高查询效率)

    (3)     重新组表 (添加新表,减少连接)

    (4)     分割表

    4. 使用中间表提高查询速度

    (1)     中间表复制源表部分数据,并且与源表”隔离”,在中间表上做统计查询不会对在线应用产生负面影响

    (2)     可以再中间表上灵活添加索引或增加临时用的新字段,从而达到提高统计查询效率

  • 相关阅读:
    mysql:基础管理、体系结构、升级降级
    Linux网络基础
    mysql 忘记本地密码
    seq命令的用法
    mysql03-SQL应用
    SolidWorks 如何改变封闭草图的背景颜色
    新版 AD 无法选中某些部件(如 Via,Pad)的问题
    安装 dot net 时出现严重错误 0x80070643 安装时发生严重错误 1603 ndp48
    IO 口扩展
    自动波特率检测
  • 原文地址:https://www.cnblogs.com/mackxu/p/2939967.html
Copyright © 2011-2022 走看看