Quantcast
Channel: 数据库内核月报
Browsing all 691 articles
Browse latest View live

MySQL · 引擎特性 · InnoDB 事务系统

前言关系型数据库的事务机制因其有原子性,一致性等优秀特性深受开发者喜爱,类似的思想已经被应用到很多其他系统上,例如文件系统等。本文主要介绍InnoDB事务子系统,主要包括,事务的启动,事务的提交,事务的回滚,多版本控制,垃圾清理,回滚段以及相应的参数和监控方法。代码主要基于RDS...

View Article


Image may be NSFW.
Clik here to view.

MySQL · 引擎特性 · Innodb 锁子系统浅析

锁类型Innodb 的锁从锁粒度上大致可以分为行锁和表锁,之前接触过的Berkeley DB(MySQL 5.1前的事务储存引擎,后被 Innodb 取代)只对存储格式为 Hash 的定长数据支持行锁,对于 Btree 格式的仅支持页锁,作为 KV 类型的存储引擎,锁的类型也相对简单。Innodb 根据官方文档的描述,除了基本的共享锁和排他锁,还有意向锁,Gap锁,Next...

View Article


MySQL · 特性分析 · LOGICAL_CLOCK 并行复制原理及实现分析

在MySQL5.7 引入基于Logical...

View Article

PgSQL · 源码分析 · AutoVacuum机制之autovacuum launcher

背景根据之前月报的分析,PostgreSQL中的MVCC机制(详见月报)同时存储新旧版本的元组,对于经常更新的表来说,会造成表膨胀的情况。为了解决这个问题,PostgreSQL...

View Article

Image may be NSFW.
Clik here to view.

MSSQL · 最佳实践 · SQL Server备份策略

摘要在上一期月报中我们分享了SQL Server三种常见的备份技术及工作方式,本期月报将分享如何充分利用三者的优点来制定SQL Server数据库的备份和还原策略以达到数据库快速灾难恢复能力。上期月报:MSSQL · 最佳实践 · SQL Server三种常见备份三个术语在详细介绍SQL Server的灾备策略之前,我们先简要介绍三个重要的术语:RTO (Recovery Time...

View Article


Image may be NSFW.
Clik here to view.

MySQL · 最佳实践 · 一个“异常”的索引选择

背景在处理一个用户性能问题的时候, 发现有一个全表扫描语句, 上下文如下: 这是很奇怪的,Tips: MySQL在执行条件判断时,若参数类型与字段类型不匹配, 则会作类型转换, 符合转换规则的, 转换完成后可以利用索引而当参数为字符串,字段类型为整型时, 这个转换是成立的, 比如这个case. 因此我们有必要查一下是什么原因.分析在优化器执行流程中, 要选择索引,...

View Article

PgSQL · 内核开发 · 利用一致性快照迁移你的数据

一.背景众所周知 PostgreSQL 的物理复制以稳定可靠著称,目前经成为默认的高可用方案。但较少有人关注到,PostgreSQL 的逻辑复制经过几个大版本迭代,已异常的强大。它结合了很多黑科技,本文就一一介绍给大家。二. MVCC 和 snapshot大家都知道,PostgreSQL 使用 MVCC 和 WAL 两项技术实现 ACID 特性。 MVCC...

View Article

Image may be NSFW.
Clik here to view.

PgSQL · 应用案例 · 手机行业分析、决策系统设计-实时圈选、透视、估算

背景经营分析、决策支持是现代企业的一个让数据发挥有效价值的分析型系统。在各个行业中随处可见,例如共享充电宝中,协助销售了解实时的设备租赁情况,销售业绩。在电商中,协助小二和商户发掘目标用户群体。金融行业中,协助输出国民的存款、消费、贷款的画像。PostgreSQL,...

View Article


MySQL · 最佳实践 · 如何索引JSON字段

概述MySQL从5.7.8起开始支持JSON字段,这极大的丰富了MySQL的数据类型。也方便了广大开发人员。但MySQL并没有提供对JSON对象中的字段进行索引的功能,至少没有直接对其字段进行索引的方法。本文将介绍利用MySQL 5.7中的虚拟字段的功能来对JSON对象中的字段进行索引。示例数据我们将基于下面的JSON对象进行演示{ "id": 1, "name": "Sally",...

View Article


MySQL · myrocks · 相关tools介绍

概述MyRocks提供了丰富的tools,如sst_dump, mysql_ldb等,这些工具对我们的运维和分析问题非常有用。sst_dump 可以导出sst中的数据和属性信息。sst_dump --help sst_dump --file=<data_dir_OR_sst_file> [--command=check|scan|raw]...

View Article

Image may be NSFW.
Clik here to view.

MySQL · 引擎特性 · Group Replication内核解析之二

背景前文已经介绍了MySQL的Group Replication的实现机制和原理,本文就Group Replication的具体实现进行详细的阐述,以更深入的理解Group Replication的机制,在实践中更好的应用Group Replication,提升应用系统的可用性,优化其性能。无缝连接的回调机制Group...

View Article

MySQL · 引擎特性 · MySQL内核对读写分离的支持

读写分离的场景应用随着业务增长,数据越来越大,用户对数据的读取需求也随之越来越多,比如各种AP操作,都需要把数据从数据库中读取出来,用户可以通过开通多个只读实例,将读请求业务直接连接到只读实例上。使用RDS云数据库的读写分离功能,用户只需要一个请求地址,业务不需要做任何修改,由RDS自带的读写分离中间件服务来完成读写请求的路由及根据不同的只读实例规格进行不同的负载均衡,同时当只读实例出现故障时能够主...

View Article

PgSQL · 内核解析 · 同步流复制实现分析

摘要PostgreSQL 的流复制自引入以来以稳定著称,近几年的几个大版本陆续完成了好几个大特性,例如1.远程物理备份2.同步流复制3.级联流复制4.逻辑流复制让流复制在整个 PostgreSQL 技术方案中扮演越来越重要的角色。 本文将剖析 PostgreSQL...

View Article


Image may be NSFW.
Clik here to view.

MySQL · 捉虫动态 · UK 包含 NULL 值备库延迟分析

前言在之前的月报 RDS 只读实例延迟分析中,我们介绍了一些常见的备库延迟的场景,今天给大家分享一个比较少见的特殊场景。简单的来说,就是在 UK 索引中存在大量 NULL 值情况下,如果备库选用这个 UK 来同步更新,会导致非常大的延迟。背景知识UK 中有大量 NULL 值,第一次看到这个可能会觉得有点奇怪,但是这确实是允许的,官方文档写的非常清楚:A UNIQUE index creates a...

View Article

Image may be NSFW.
Clik here to view.

MySQL · 捉虫动态 · Error in munmap() "Cannot allocate memory"

前言最近线上遇到一个问题,一个MySQL实例报错 Error in munmap(): Cannot allocate memory 造成进程异常退出背景介绍MySQL 使用 jemalloc 进行内存分配,报错的原因是 MySQL 进程的 VMA 数量大于操作系统上限这里先介绍几个前序概念虚拟内存区域...

View Article


Image may be NSFW.
Clik here to view.

MSSQL · 最佳实践 · 数据库备份链

摘要在SQL Server备份专题分享中,前两期我们分享了三种常见的备份以及备份策略的制定,在第三期分享中,我们将要分享SQL Server的数据库备份链。完整的数据库备份链是保证数据库能够实现灾难恢复的基础,如果备份链条被打断或者备份链条上的文件损坏,势必会导致数据恢复不完整或者不能满足预期,而造成数据丢失,危害数据完整性生命线,后果非常严重。所以,理解SQL...

View Article

MySQL · 捉虫动态 · 字符集相关变量介绍及binlog中字符集相关缺陷分析

MySQL字符集相关变量介绍及binlog中字符集相关缺陷分析MySQL支持多种字符集(character set)提供用户存储数据,同时允许用不同排序规则(collation)做比较。本文基于MySQL5.7介绍了字符集相关变量的使用,通过例子描述了这些变量具体意义。分析了MySQL...

View Article


Image may be NSFW.
Clik here to view.

PgSQL · 应用案例 · 传统分库分表(sharding)的缺陷与破解之法

背景随着互联网的发展,数据爆炸性的增长,数据库逐渐成为了很多业务的绊脚石,很多业务也哭着喊着要上分布式数据库。但是,传统的分库分表(sharding)带来的问题较多,得不偿失传统分库分表问题1、 扩容不方便(需要重分布数据)2、 分布键变更很麻烦3、...

View Article

MySQL · MyRocks · MyRocks参数介绍

以下参数是db级别的,全局有效参数说明备注rocksdb_block_cache缓存uncompressed blocks,此cache有分区优化,分区数由table_cache_numshardbits控制,默认为6即64个分区。...

View Article

PgSQL · 应用案例 · 惊天性能!单RDS PostgreSQL实例支撑 2000亿

背景20亿用户,每个用户1000个标签,基于任意标签组合圈选、透视(业务上的需求是一次最多计算100个标签的组合)。相当于要处理2000亿记录。1、实时求标签组合的记录数。(即满足标签组合的用户有多少)2、用户ID。(级满足标签组合的用户ID。)要求实时响应。通常你肯定会想,这个至少需要上百台机器来支撑。但是我要给你一个惊喜,这个数据量,一台RDS...

View Article
Browsing all 691 articles
Browse latest View live