zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

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

Oracle架构并发 设计 导读 数据库系统
2023-09-11 14:19:09 时间

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 本章小结


堪称神级的阿里巴巴“高并发”教程《基础+实战+源码+面试+架构》 作为一个普普通通的程序员,如何才能提升自己的能力,在职场上拥有一技之长,这也成为普通的你我,迫切的需求。 拥有什么样的能力才能不被淘汰?答案是:高并发,它几乎成为了每个程序员都想要拥有的经验。 原因很简单:流量是大的电商公司必要的需求,比如,淘宝的双十一会产生大量的高并发,用户上亿,一天的流量就是几十亿,高峰期的并发量上十万。所以,如何抗住高并发,是这种大公司需要面对的。
阿里巴巴高并发架构到底多牛逼?是如何抗住淘宝双11亿级并发量? 众所周知,在Java的知识体系中,并发编程是非常重要的一环,也是面试的必问题,一个好的Java程序员是必须对并发编程这块有所了解的。 然而不论是哪个国家,什么背景的 Java 开发者,都对自己写的并发程序相当自信,但也会在出问题时表现得很诧异甚至一筹莫展。 可见,Java 并发编程显然不是一件能速成的能力,基础打得越好,越全面,在实践中才会有更深刻的理解。 因此,大家不难发现 Java 并发问题一直是各个大厂面试的重点之一。我在平时的面试中,也发现很多候选人对一些基本的并发概念表示没听过,或原理不理解,可能知道一些却又讲不清楚,最终导致面试失败。
架构分层—高并发场景微服务实战(四) 软件架构分层在软件工程中是一种常见的设计方式,它是将整体系统拆分成N个层级,每个层级有独立的职责,多个层级协同提供完整的功能。
【高并发项目实战】工程模块化与活动会场静态化架构原理解析 活动会场往往聚集着大量流量,千万甚是上亿级别很平常,我们做架构设计的时候,应该前端、后端、网关、配置等等都要考虑进去才是一个合格的架构,本文采取工程模块化与活动会场静态化做架构并讲解其设计原理。