随笔分类 - 数据库基本原理、架构
摘要:行存储是在逻辑上整理为包含行和列的表,实际上以行式数据格式存储的数据,此格式是存储关系表数据的传统方法。 列存储是在逻辑上整理为包含行和列的表,实际上以列式数据格式存储的数据。 行存储索引最适合用于查找数据、搜索特定值的查询,或者针对较小范围的值执行的查询。 对事务工作负载使用行存储索引,因为它们往
阅读全文
摘要:加速数据库恢复是sql server 于2019 版本开始引入的一项新特性,简称ADR。 1、ADR 的主要优势在于: 快速且一致的数据库恢复 使用 ADR,长时间运行的事务不会影响整体恢复时间,且无论系统中活动事务的数量或大小如何,都可以实现快速且一致的数据库恢复。 即时事务回滚 使用 ADR,事
阅读全文
摘要:事务隔离级别越低,事务所请求的锁越少或者持有锁时间越短,主要有四种: 1、未提交读 事务读取数据库修改的最新版本,可能会读取到未提交的事务引起脏读。 2、读提交 事务读取数据库事务提交的最新版本,可能会读取到同一对象的不同版本。 3、可重复读 事务读取数据库事务提交的最新版本,每次读取的对象是事务开
阅读全文
摘要:ACID:原子性、一致性、隔离性、持久性 原子性(Atomicity) 事务是一个独立的、不可分割的操作单元,是一种要么全部完成,要么全部回退的原子单位性操作。 一致性(Consistency) 事务必须始终保持系统处于一致的状态,一个事务是数据状态的切换,因此如果事务是并发多个,系统也必须如同串行
阅读全文
摘要:1、崩溃恢复相关参数解析: innodb_fast_shutdown: innodb_fast_shutdown = 0:这个表示在MySQL关闭的时候,执行slow shutdown,不但包括日志的刷盘,数据页的刷盘,还包括数据的清理(purge),ibuf的合并,buffer pool dump
阅读全文
摘要:HA(高可用性)用于衡量在系统组件出现故障时,系统保持可访问性的能力。一般情况下,通过在系统中建立多级容错来实施HA。对于HA,应确定系统所需的服务协议级别(SLA)。 DR(灾难恢复)是在发生自然或人为灾难后,系统恢复到以前的可接受状态的过程。对于DR,在执行DR计划和还原环境的过程中,可能产生巨
阅读全文
摘要:oracle asm 数据冗余基于extent而非磁盘,提供了4种冗余级别:External:asm 磁盘组不提供数据冗余,依靠外部raid提供数据保护Normal:asm 磁盘组提供2份数据冗余,至少需要2个故障组,最多同时损坏一个故障组的磁盘,假定磁盘空间足够的话,最多可损坏n-1个磁盘High
阅读全文
摘要:1、数据库扩展:水平扩展与垂直扩展 垂直扩展通过增加数据库服务器的CPU、Memory、IO、Disk Space实现数据库容量、性能的提升 水平扩展通过分片将业务数据、计算分散到多台数据库服务器上,通过增加分片节点服务器实现容量、性能的提升 2、数据库读副本: 通过读副本读写分离,分担主数据库的压
阅读全文
摘要:oracle 9i: 1、自动pga 内存管理 2、自动段空间管理 3、rac(cache fusion) 4、闪回查询 oracle 10g: 1、自动sga内存管理 2、addm 3、awr 4、ash 5、sql tuning advisor/sql access advisor,引入sql
阅读全文
摘要:Mysql InnoDB 架构图: 1、MySQL 8: 2、MySQL 5.7以及之前的版本:
阅读全文
摘要:max_connections 系统支持的最大连接数 shared_buffers共享缓冲区大小,建议为服务器内总的1/4大小 effective_cache_size postgresql能使用的最大缓存,会被优化器用于使用索引的成本考量,值越大使用索引扫描的可能性越大,反之使用表扫描的可能性越大
阅读全文
摘要:mysql 各个版本重要新特性 mysql 5.5:1、支持online ddl2、默认存储引擎为innodb3、引入半同步异步复制(主库在提交事务后,会等待从库反馈收到relay log) mysql 5.6:1、支持gtid复制(备库需log_slave_updates=on开启bin log)
阅读全文
摘要:Sql Server 2005: 1、支持分区表 Sql Server 2008: 1、数据库备份支持压缩 2、支持TDE功能(仅限企业版) Sql Server 2012: 1、支持always on 一主多备(备库只读可查询)架构 2、支持数据库序列 3、支持包含数据库(数据库用户可以独立于登陆
阅读全文
摘要:--unlock dml lock select distinct 'alter system kill session '||''''||s.sid||','||s.SERIAL#||''''||' immediate;' as kill_session_sql,o.owner||'.'||o.o
阅读全文
摘要:1、物理备份 pg_basebackup:数据库内置,支持完整备份,利用流复制协议pg_rman:第三方插件,支持完整备份、差异备份,利用pg_start_backup()、pg_stop_backup()、copy方式pg_probackup:第三方插件,支持完整备份、差异备份,支持并行备份、压缩
阅读全文
摘要:1、支持分区表 内置分区表支持范围、列表分区,无需通过继承、约束、触发器实现,减少了分区表的创建、维护工作量 2、逻辑复制 内置逻辑流复制功能,无需第三方插件,性能更高 3、并行查询 并行索引扫描(index scan) 并行索引全扫描(index-only scan) 并行位图扫描(bitmap
阅读全文
摘要:1、分区增强 支持哈希分区 支持分区表上的主键、外键、索引以及触发器 支持创建默认分区 支持分区键更新 增强了查询语句处理和执行时的分区裁剪(分区排除),进而提高了SELECT查询语句的性能 2、并行 并行创建 B-tree 索引 并行执行CREATE TABLE .. AS、CREATE MATE
阅读全文
摘要:1、新增视图、函数:pg_stat_progress_create_index 查看当前正在创建的索引进度,已经执行的数据块数量,已经执行的行数量,使用/等待锁的情况 pg_stat_progress_cluster 查看当前vacuum full/cluster进度,数据块读写数量,数据条目读写数
阅读全文
摘要:1、pg_repack、pgcompacttable 在线清理表空间,空间回收,不影响dml 作业 2、pg_stat_statements 提供一种方法追踪服务器执行的所有SQL语句的执行统计信息,分析、优化 top sql 3、pg_hint_paln 通过特殊的注释语句提示,使PostgreS
阅读全文