MySQL 存储引擎 InnoDB 技术内幕
这本书的电子版的一个博客。 InnoDB.xmind 前言MySQL 是处理海量数据(尤其 是OLTP 写入)时仍能获得最佳性能的最佳选择之一,它的 CPU 效率可能其他任何基于磁盘的关系型数据库所不能匹敌的-但它应该能够匹敌 Redis。 Think Different 而不是 Think Differently,这意味着要思考不同的东西,而不只是思考不同的方式。 不要相信网上的传言,去做测试,根据自己的实践做决定。很多伟大的作者写的伟大的书里面,关于性能的说法都来源于他们个人的随身电脑的直观测试。 change buffer 是 inert buffer 的升级版本。 MySQL 体系结构和存储引擎定义数据库和实例 数据库:物理操作系统文件或其他形式文件类型的集合。 实例:操作系统后台进程(线程和一堆共享内存)。 存储引擎:基于表而不是基于库的,所以一个库可以有不同的表使用不同的存储引擎。 InnoDB 将数据存储在逻辑的表空间中,这个表空间就像黑盒一样。 存储引擎不一定需要事务。比如没有 ETL...
数据库容灾体系的演变
什么是容灾 备份的分类 备份方式 说明 逻辑备份 数据库对象级备份,备份内容是表、索引、存储过程等数据库对象,如MySQL mysqldump、Oracle exp/imp。 物理备份 数据库文件级备份,备份内容是操作系统上数据库文件,如MySQL XtraBackup、Oracle RMAN。 快照备份 基于快照技术获取指定数据集合的一个完全可用拷贝,随后可以选择仅在本机上维护快照,或者对快照进行数据跨机备份,如文件系统Veritas File System,卷管理器Linux LVM,存储子系统NetApp NAS。 规划要结合业务,产生多维立体的解决方案。
从美元周期看大国经济战
...
MySQL 压缩
压缩算法Table CompressionInnoDB存储引擎是按照索引组织表(index-organized table)的方式组织数据的,数据存储在B-tree索引(clustered index/primary key & secondary index)中。Table Compression是针对整个表,和相关索引进行的,而不是单独的数据行。 B-tree页经常被更新,InnoDB会尽量减少B-tree节点的分裂(split),减少不必要的压缩和解压页。为此,InnoDB在每个B-tree页中都预留了未压缩的“modification log”空间,记录页的变更。对于update和insert的数据量较小时,会先写入“modification log”,不用立刻重构整个页。当“modification...
分库分表
业界方案问题垂直拆分优点:降低负载,提高可用性 缺点: 无法降低单表数据量 不能无限扩容 存在单点故障 join 等多表操作受限 存在跨库事务 水平拆分优点: 降低单表数据量 理论上可无限扩容(NoSQL 通常采取这种方案) 不存在单点故障 缺点: join 等多表操作进一步受限 存在跨库事务 扩容成本高 如何分hash 分表常见的分表方案。 range 分表建立时间 range,按 range 分表。 混合分表先 hash,再 range。 怎么查 SQL 路由(route)和结果合并(merge) 多表 join 多维度查询 跨库事务 路由要定义 dsl,用语言解析表达式。 做广播表的查询的结果就是一张逻辑表查询转成多张表查询。 如果要做无分表键的查询,不如做影子表做侧维度。但影子表依赖于数据迁移服务。数据迁移服务的存在在日常的数据库运维中非常重要,它可以支持任意的 etl 的形式来同步异构数据。但这会带来成本上的坑。
货币价值的变迁
FROM:https://mp.weixin.qq.com/s/QynjLKnXsix4apKn4RWh5g 1....
货币、信贷与债务
FROM:https://mp.weixin.qq.com/s/h14q5BVSSWsNgU5K6bMEVw 货币系统:大多数货币和信贷(尤其是现存的法币)并无内在价值。所有货币要么被摧毁,要么贬值。而当这发生时,财富就会以一种浩荡的方式转移,从而在经济和市场中产生巨大的反响。然而,拥有储备货币的国家更容易摆脱大量借贷(即创造信贷和债务)或者发行巨额货币的窘境,因为储备货币可用于世界各地的支出,所以其他国家倾向于持有这些债务。 经济周期由短期债务周期和长期债务周期构成 短期债务周期:通常持续8年左右,或多或少。时机取决于“兴奋剂”将需求提高到实体经济生产能力极限所需的时间。与短期债务周期相比,长债务周期需花费我们一生时间才会完成,因此大部分经济学家在内的大众根本没有意识到长期债务周期的存在。 长期债务周期:通常持续约50至75年。 拥有储备货币地位对国家意义重大,相对于美国经济规模而言,其规模是巨大的。 2008年以来,央行在MP2(QE)的基础上开启了MP3的新范式 ,这意味着具有储备货币的中央银行创造货币和信贷的能力几乎没有或没有限制。...
世界财富与权力大转移背后的规律
FROM:https://mp.weixin.qq.com/s/o1lxndz0UtI_Websf-WDPw 财富和权力的大幅波动是由多达17种主要因素引起的,最重要的是货币和信贷周期,贫富差距周期和全球地缘政治周期。这些强大的力量通常以经典的周期汇聚在一起,这些经典的周期以相互补充的方式趋向于形成一个非常大的起伏周期,并在整个历史中反复出现。这个庞大的周期范式(archetypical cycle)控制着帝国的兴衰。 在多种因素引导着历史更迭和全球周期起伏,暗中发生着国家间财富和权力转移。这种转移往往会被人忽略,因为虽然财富和权力的转移在历史长河中属于白驹过隙,但对个体有限的寿命而言是长达十余年潜移默化的改变。我们如今正在经历相对财富和权力的范式迁移(archetypical big shift in relative wealth and...
Ray Dalio - 变化的世界格局与宏观周期
FROM:https://mp.weixin.qq.com/s/zdF7d-MvpmNAj4tnxD2Cdg 为什么要关注全球历史的大趋势:每个人一生都只能够经历宏观周期中一小部分,因此时而会对长达50-70年大周期视而不见。而通常人生中最大机遇和失误,往往来自于错过了“人生中没有发生过,但在历史当中反复重演”的市场信号。 历史上重要事件由三大力量所驱动:长期货币和债务周期、国内财富与权力周期、国际财富与权力周期。三种力量往往相互融合、相互促进,共同决定了国家和全球的经济政治走势。 本系列重点关注世界舞台上长袖善舞的大国:主要包括3个储备货币国家:荷兰,英国和美国,以及其他6个重要大国:德国,法国,俄罗斯,印度,日本和中国。这些具体个例将提炼出历史反复发生的典型范例。 回看历史,有3个对经济整体趋势至关重要的事件: 经济增长困局:全球经济体的高负债率(high level of...
MySQL 的 MGR
MySQL 高可用架构的历史MySQL 自带的主从复制机制,本身并不能实现自动高可用。 早期使用开源组件来搭 MySQL 集群的方案,使用 MMHA。当代 MySQL 官方自己主推的方案是 MySQL cluster。这些老的方案,优先保证MySQL服务的持续可用,在异常切换情况下,可能出现主机上部分数据未能及时同步到从库,造成主从切换后数据丢失。但是包括金融支付在内的一些业务,对于数据库服务既要求持续可用、也要求数据强一致(可以在性能上做出一些让步)。 因此,当代的 MySQL 官方提供了组复制(MySQL Group Replication)的方案,构建了新一代的 MySQL 高可用强一致服务。 Master-Slave(MS)架构高可用概述MS架构高可用基础高可用MySQL是依赖复制(Replication)技术实现的,复制解决的基本问题就是,让一台数据库服务器的数据同步到其它服务器上。MySQL数据库的复制有如下三个步骤。 在主库上把数据更改记录到二进制日志(Binary...