《高并发Oracle数据库系统的架构与设计》一导读

简介: 写一本Oracle数据库方面的技术书籍,是我一个持续了四五年的想法。本着自我总结和快乐分享的初衷,不只一次地咨询过eygle大师关于写书的细节,eygle大师也热情地予以指导。遗憾的是,总是因为这样那样的原因,这个想法迟迟不能落地。

image

前 言

为什么要写这本书
写一本Oracle数据库方面的技术书籍,是我一个持续了四五年的想法。本着自我总结和快乐分享的初衷,不只一次地咨询过eygle大师关于写书的细节,eygle大师也热情地予以指导。遗憾的是,总是因为这样那样的原因,这个想法迟迟不能落地。

2013年的夏天,我有幸作为微博特使参与了甲骨文全球大会(Oracle Open World)上海站的活动,跟一位甲骨文的朋友闲谈中,不经意聊到了与Oracle数据库“共事”已经快十年了。朋友说我应该有不少心得了,鼓励我花一年的时间来做一个总结,可以写一本书分享给更多的朋友。“十年”是一个非常特别的东西,它彻底激发出我写书的热情。凌乱的思绪,不知该写些什么的时候,联想到再游十年未见西湖的感触:
云恸风摧山北暮,桥断平湖,西子颜如故。曲院风荷香暗渡,余晖昨日穿朱户。
月澹星稀闻浪住,对酒当歌,言莫愁时苦。意若随心晴若雨,谁知明日鸿归处?
对于技术人来说,杭州渐渐演变成技术之城,然而因为西湖,她应该是艺术的。正如以艺术之眼去欣赏Oracle数据库,不仅仅是纯技术活,更能发现其艺术之美。怀着一颗附庸风雅之心,我决定写一本具有一定实用价值的数据库架构设计和性能优化方面的书。
回顾十年技术之路,如大多数同行一样,一切都是从OCP认证开始的,没能赶上8i OCP的末班车,只好搭乘了9i OCP的头班车。如今认证不如以前受重视了,然而我一直认为OCP给我们提供了一个完整的基础知识体系,其价值不在于那一张纸而已。现在,DBA工作内容逐步实现了流程化和模块化,一些初学者已经可以轻松地完成一些复杂架构的搭建,却时常会因为一些基础的概念性的东西而纠结不清,我会毫不犹豫地推荐他们去进行OCP教材的学习。只有建立自己的基础知识体系,才能主动地去思考问题,才能开始专职DBA之路。
在十年之前,有专职DBA的公司可以说少之又少,早期的DBA都是从开发转过来的,做的人多了,也就有专职DBA这个概念,进而很多不愿意写代码的人也纷纷投身其中。各个公司也出于系统安全和精细分工的考虑,开始禁止DBA了解、熟悉业务,禁止DBA访问业务数据等,以至于现在很多DBA没有开发能力,也不懂得业务应用,仅仅是一个数据库技术的支持者,进而导致DBA被误读为夕阳职业。早期的DBA为什么能备受重视,不仅仅是因为物以稀为贵,更多的是因为有开发背景,了解业务流程,具备复合能力,这才是最可贵的。可以说不懂得DBA技能的开发不是好开发,不懂得开发的DBA不是好DBA。
可喜的是,随着时间的发展,大家都开始意识到这个问题,于是数据库架构师的概念应运而生,他们是一群复合能力的拥有者,是开发人员和DBA之间的桥梁。然而,复合能力也是有较强的行业依赖性的,没有可以跨行业的万能复合,也没有能完全跨行业实现的万能数据库架构。我在本书的编写过程中,也是以我熟悉的金融行业为立足点,尽可能地兼顾全面阐述。
本书将给读者一个全新的视角,秉承大道至简的主导思想,只介绍高并发数据库架构设计中最值得关注的内容,不在于某种技能的分享,而致力于一种方法论的建立,希望能抛砖引玉,以个人的一些想法和见解,为读者拓展出更深入、更全面的思路。

目 录

第一部分 内政篇
第1章 大道至简
1.1 初见高并发
1.2 说句时髦话
1.3 在Oracle的世界里
1.4 本章小结
第2章 高效B树索引
2.1 索引扫描识别
2.2 索引与排序
2.3 索引设计优化
2.4 索引分裂
2.5 索引维护
2.6 本章小结
第3章 高效表设计
3.1 数据生命周期管理
3.1.1 什么是数据生命周期管理
3.1.2 架构模型设计
3.1.3 数据分层存储
3.2 常用字段类型选择
3.2.1 VARCHAR2与CHAR
3.2.2 NUMBER与VARCHAR2
3.2.3 主键字段的选择
3.2.4 LOB字段
3.3 字段顺序
3.3.1 热字段靠前排
3.3.2 行宽需要控制
3.4 行链接与行迁移
3.4.1 行链接原理
3.4.2 行迁移原理
3.4.3 发现问题
3.4.4 解决问题
3.5 分区表的使用
3.5.1 何时使用分区表
3.5.2 分区表设计思路
3.5.3 分区表特性
3.6 适当的冗余
3.6.1 反范式建模
3.6.2 物化视图
3.6.3 结果集缓存
3.6.4 直接路径插入
3.7 碎片分析与整理
3.7.1 碎片的产生
3.7.2 DBMS_SPACE包
3.7.3 碎片的整理
3.8 本章小结

相关文章
|
6月前
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
8月前
|
消息中间件 存储 设计模式
RocketMQ原理—5.高可用+高并发+高性能架构
本文主要从高可用架构、高并发架构、高性能架构三个方面来介绍RocketMQ的原理。
2912 21
RocketMQ原理—5.高可用+高并发+高性能架构
|
消息中间件 架构师 数据库
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
45岁资深架构师尼恩分享了一篇关于分布式事务的文章,详细解析了如何在10Wqps高并发场景下实现分布式事务。文章从传统单体架构到微服务架构下分布式事务的需求背景出发,介绍了Seata这一开源分布式事务解决方案及其AT和TCC两种模式。随后,文章深入探讨了经典ebay本地消息表方案,以及如何使用RocketMQ消息队列替代数据库表来提高性能和可靠性。尼恩还分享了如何结合延迟消息进行事务数据的定时对账,确保最终一致性。最后,尼恩强调了高端面试中需要准备“高大上”的答案,并提供了多个技术领域的深度学习资料,帮助读者提升技术水平,顺利通过面试。
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
|
缓存 关系型数据库 MySQL
高并发架构系列:数据库主从同步的 3 种方案
本文详解高并发场景下数据库主从同步的三种解决方案:数据主从同步、数据库半同步复制、数据库中间件同步和缓存记录写key同步,旨在帮助解决数据一致性问题。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
高并发架构系列:数据库主从同步的 3 种方案
|
存储 Oracle NoSQL
【赵渝强老师】Oracle的体系架构
Oracle数据库的核心在于其体系架构,主要包括数据库与实例、存储结构、进程结构和内存结构。数据库由物理文件组成,实例则是内存和进程的组合。存储结构分为逻辑和物理两部分,进程结构涉及多个后台进程如SMON、PMON、DBWn等,内存结构则包含SGA和PGA。掌握这些知识有助于更好地管理和优化Oracle数据库。
416 7
|
缓存 负载均衡 网络协议
高并发架构的CDN知识介绍
本文详细介绍了网络请求过程,特别是大型网站架构中DNS和CDN的作用。通过一张常用架构图,文章解释了从客户端请求到服务器响应的全过程,包括DNS解析、负载均衡、CDN加速等关键环节,帮助读者深入了解高并发架构的设计原理和优化方法。
647 1
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
高并发下,如何设计秒杀系统?这是一个高频面试题。40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试Shopee时遇到了这个问题,未能很好地回答,导致面试失败。为此,尼恩进行了系统化、体系化的梳理,帮助大家提升“技术肌肉”,让面试官刮目相看。秒杀系统设计涉及16个架构要点,涵盖业务架构、流量架构、异步架构、分层架构、缓存架构、库存扣减、MQ异步处理、限流、熔断、降级、存储架构等多个方面。掌握这些要点,可以有效应对高并发场景下的秒杀系统设计挑战。
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
|
存储 缓存 负载均衡
高并发系统架构的设计挑战与应对策略
【8月更文挑战第18天】高并发系统架构设计是一项复杂而重要的任务。面对性能瓶颈、稳定性与可靠性、并发控制和可扩展性等挑战,开发人员需要采取一系列有效的策略和技术手段来应对。通过负载均衡、缓存技术、数据库优化、异步处理、并发控制、弹性设计及监控与调优等手段,可以设计出高性能、高可用和高可扩展性的高并发系统架构,为用户提供优质的服务体验。
|
存储 运维 Oracle
常用的几种Oracle架构介绍
常用的几种Oracle架构介绍
537 0

热门文章

最新文章

推荐镜像

更多