• 优化数据库对象


    优化数据库对象

    目录:

    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)     可以再中间表上灵活添加索引或增加临时用的新字段,从而达到提高统计查询效率

  • 相关阅读:
    Linux系统教程:设置GRUB菜单密码
    vimdiff的常用命令
    Zero-Copy实现原理
    解决业务代码里的分布式事务一致性问题
    用好这6个APP,学英语SO EASY!
    线程池调优
    理解select,poll,epoll实现分析
    时序图
    性能监控-TP理解
    sshd_config OpenSSH SSH 进程配置文件配置说明
  • 原文地址:https://www.cnblogs.com/mackxu/p/2939967.html
Copyright © 2020-2023  润新知