• 缓存表和汇总表


    提升性能最好的方式是在同一张表中保存衍生的冗余数据。有时候,也需要创建一张完全独立的汇总表或缓存表。建立汇总表的原因就在于:无论是通过粗略的统计计算还是严格的计数,都比计算原始表的所有行有效的多。建立缓存表的原因则是优化检索和查询语句,这些查询语句经常需要特殊的表和索引,跟普通的OLTP操作表有一些区别。

    可能会需要很多不同的索引组合来加速各种类型的查询,可以根据业务的需求,对缓存表使用不同的存储引擎,甚至可以把整个表导出,插入到专门的搜索系统中获得更高的搜索效率(例如Lucene或者Sphinx)。在使用缓存表和汇总表时,必须决定是实时维护还是定期重建。当重建汇总表的时候,需要保证数据在操作时依然可以使用,这就需要通过影子表来进行实现。(重命名替换)。

    物化视图

    物化视图实际上是预先计算并且存储在磁盘上的表,可以通过各种各样的策略刷新和更新。对比与传统的缓存表和汇总表的方法,物化视图通过提取对源表的更改,可以增量式的重新计算物化视图的内容。

    • 变更数据抓取功能,可以读取服务器的二进制日志并且解析相关行的变更
    • 一系列可以帮助创建和管理视图的定义的存储过程
    • 一些可以应用变更更到数据库中的物化视图工具

    为了提升读查询速度,经常会需要建一些额外的索引,增加冗余列,甚至是创建缓存表和汇总表,这些方法会增加查询的负担,也需要额外的维护任务,但在设计高性能数据库时,这些都是常见的技巧:虽然写操作变得更慢了,但是显著地提高了读操作的性能。然而,写操作变慢并不是读操作变快所付出的唯一代价,还可能同时增加了读操作和写操作的开发难度。

  • 相关阅读:
    机器学习书籍推荐
    25个机器学习面试题,期待你来解答
    观点 | 如何优雅地从四个方面加深对深度学习的理解
    Azure Public IP DNS域名
    SSH不允许Root登陆的方法
    MySQL on Azure高可用性设计 DRBD
    Linux ssh 不需要输入密码的方法
    MySQL on Azure高可用性设计 DRBD
    Express Route的配置
    Azure PIP (Instance Level Public IP)
  • 原文地址:https://www.cnblogs.com/gscienty/p/6647033.html
Copyright © 2020-2023  润新知