新書推薦:
《
云中记
》
售價:HK$
76.2
《
大模型应用开发:RAG入门与实战
》
售價:HK$
89.4
《
不挨饿快速瘦的减脂餐
》
售價:HK$
67.0
《
形而上学与存在论之间:费希特知识学研究(守望者)(德国古典哲学研究译丛)
》
售價:HK$
110.7
《
卫宫家今天的饭9 附画集特装版(含漫画1本+画集1本+卫宫士郎购物清单2张+特制相卡1张)
》
售價:HK$
132.2
《
万千教育学前·与幼儿一起解决问题:捕捉幼儿园一日生活中的教育契机
》
售價:HK$
47.0
《
史铁生:听风八百遍,才知是人间(2)
》
售價:HK$
55.8
《
量子网络的构建与应用
》
售價:HK$
109.8
|
編輯推薦: |
**一线开发人员力作
详细讲述数据库内部的实现原理
深入浅出地阐述MariaDB的设计理念
广泛涵盖MariaDB区别于MySQL的主要亮点功能
|
內容簡介: |
《MariaDB原理与实现》由浅入深地剖析了MariaDB,首先简要介绍了一些基础知识、新特性、对MySQL原有功能所做的扩展以及源代码,接着介绍了底层数据结构、线程池技术、binlog、复制等内容,最后介绍了分布式数据库系统。
《MariaDB原理与实现》主要面向想了解MariaDBMySQL的工作原理及具体实现的读者,以及想要阅读MariaDBMySQL源代码却苦于不知道从何处开始的读者。
|
關於作者: |
张金鹏
**资深技术专家,MySQL数据库专家,**云数据库组核心成员,主要负责MySQL内核优化及二次开发。多年数据库领域以及搜索引擎领域的工作经验,对Redis、Memcached等NoSQL数据库,以及CGroup、LXC、Docker等容器技术有深入的研究。
新浪微博:弓长金鹏
张成远
**资深架构师。毕业于东北大学,硕士阶段研究分布式数据库相关方向,2012年加入**云数据库技术团队。擅长高性能服务器开发、分布式数据库、分布式存储缓存等大规模分布式系统架构。主导了**分布式数据库系统及容器系统的架构与开发工作。
新浪微博:NEU_寒水
季锡强
**资深架构师,主要负责**分布式数据库的架构设计及研发工作,主导容器技术在**的应用与推广。专注于高性能服务器、分布式数据库、分布式存储缓存及容器技术,对容器核心技术及golang并发编程有深入研究。
|
目錄:
|
第1章 MariaDB概述
1.1 MariaDB的历史
1.2 MariaDB所做的事情
1.2.1 更丰富的存储引擎
1.2.2 性能的提升
1.2.3 扩展和新特性
1.2.4 更好的测试
1.2.5 尽量消除错误和警告
1.3 MariaDB的版本与兼容性
1.3.1 MariaDB 5.1和MySQL 5.1的不兼容性
1.3.2 MariaDB 5.2和MySQL 5.1的不兼容性
1.3.3 MariaDB 5.3和MySQL 5.1、MariaDB 5.2的不兼容性
1.3.4 MariaDB 5.5和MariaDB 5.3的不兼容性
1.3.5 MariaDB 5.5与MariaDB 5.3和MySQL 5.5的不兼容性
1.3.6 MariaDB 10.0和MySQL 5.6的不兼容性
1.4 编译和安装MariaDB
1.4.1 使用二进制安装包进行安装
1.4.2 使用源代码进行编译安装
1.5 联系社区
1.5.1 Launchpad团队和邮件列表
1.5.2 MariaDB Commits列表
1.5.3 MariaDB Captains
1.5.4 MariaDB公告列表
1.5.5 IRC
1.5.6 讨论组
1.5.7 要求增加新特性
1.5.8 MariaDB知识基础
1.6 小结
第2章 MariaDB的扩展和新特性
2.1 更多的存储引擎
2.1.1 全新的Aria存储引擎
2.1.2 XtraDB存储引擎
2.1.3 SphinxSE存储引擎
2.1.4 FederatedX存储引擎
2.1.5 TokuDB存储引擎
2.1.6 Cassandra存储引擎
2.1.7 CONNECT存储引擎
2.1.8 Sequence存储引擎
2.1.9 Spider存储引擎
2.2 线程池技术和binlog group commit技术
2.2.1 线程池技术
2.2.2 binlog group commit技术
2.3 MariaDB其他扩展和新特性
2.3.1 更高的时间精度
2.3.2 虚拟列
2.3.3 用户统计功能
2.3.4 KILL命令的扩展
2.3.5 命令执行进度报告
2.3.6 动态列
2.3.7 多源复制
2.4 小结
第3章 初识MariaDB源代码
3.1 MariaDB源代码的目录组织结构
3.2 MariaDB对类型和函数的封装
3.2.1 对类型的封装
3.2.2 MariaDB对函数的封装
3.3 调试MariaDB
3.3.1 准备工作
3.3.2 mysqld关键的函数调用
3.3.3 调试
3.4 小结
第4章 MariaDB基础数据结构
4.1 内存池MEM_ROOT
4.1.1 内存碎片问题
4.1.2 MEM_ROOT的定义
4.1.3 MEM_ROOT的使用
4.1.4 MEM_ROOT的初始化
4.1.5 分配内存
4.1.6 内存回收
4.1.7 MEM_ROOT的使用场景
4.2 文件缓存IO_CACHE
4.2.1 高性能武器——缓存
4.2.2 IO_CACHE的定义
4.2.3 IO_CACHE的使用
4.3 NET结构
4.4 线程上下文——THD
4.5 TABLE_SHARE
4.6 TABLE
4.7 小结
第5章 MariaDB线程池
5.1 线程池相关的参数
5.1.1 MariaDB 5.1和MariaDB 5.3中的线程池
5.1.2 MariaDB 5.5和MariaDB 10.0中的线程池
5.2 何时使用线程池
5.3 线程池的实现
5.3.1 线程池相关的数据结构
5.3.2 线程池的初始化
5.3.3 添加连接到线程池
5.3.4 worker线程
5.3.5 get_event函数
5.3.6 listener线程
5.3.7 timer线程
5.4 小结
第6章 二进制日志binlog
6.1 简介
6.1.1 binlog的作用
6.1.2 index文件
6.2 binlog的使用
6.2.1 开启binlog
6.2.2 选择binlog的格式
6.2.3 binlog的相关参数
6.3 binlog事件
6.3.1 binlog事件格式
6.3.2 binlog事件类型
6.3.3 binlog事件的实现
6.4 清理binlog
6.4.1 手动清理binlog
6.4.2 自动清理binlog
6.4.3 purge命令的实现
6.5 binlog_cache_mngr结构
6.6 mysqlbinlog工具
6.7 使用binlog进行恢复
6.8 小结
第7章 binlog group commit技术
7.1 事务的两阶段提交
7.2 binlog group commit的工作原理
7.3 binlog group commit的实现
7.3.1 相关的数据结构
7.3.2 代码执行流
7.3.3 事务排队
7.3.4 leader线程的工作
7.3.5 prepare_ordered和commit_ordered接口
7.4 小结
第8章 复制
8.1 简介
8.2 复制的作用
8.3 复制的工作原理
8.3.1 概要
8.3.2 relay-log
8.3.3 master.info文件和relay-log.info文件
8.4 复制的配置
8.4.1 在新安装的主库和从库上配置复制
8.4.2 主库有一定数据时的复制配置
8.4.3 选择性复制
8.5 复制的实现
8.5.1 复制相关的数据结构
8.5.2 复制的初始化——init_slave函数
8.5.3 CHANGE MASTER TO命令——准备工作
8.5.4 STAERT SLAVE命令——开启复制
8.5.5 STOP SLAVE命令——停止复制
8.5.6 slave IO线程
8.5.7 slave SQL线程
8.5.8 master dump线程
8.6 半同步复制
8.6.1 半同步复制的工作原理
8.6.2 半同步的安装和配置
8.6.3 半同步复制的实现
8.6.4 半同步复制的变种
8.6.5 半同步复制的潜在问题
8.7 并行复制
8.7.1 MySQL的并行复制
8.7.2 MariaDB的并行复制
8.8 多源复制
8.8.1 多源复制的应用场景
8.8.2 多源复制相关的命令
8.8.3 MariaDB多源复制的实现
8.9 GTID
8.9.1 GTID的概念
8.9.2 在MySQL上配置基于GTID的复制
8.9.3 MySQL中GTID的实现
8.9.4 MariaDB中的GTID
8.10 小结
第9章 数据结构和算法
9.1 算法复杂度
9.2 B+树和索引
9.2.1 磁盘的读取
9.2.2 B+树
9.2.3 数据库索引
9.3 堆排序与快速排序
9.3.1 堆——优先级队列
9.3.2 堆排序
9.3.3 快速排序——qsort
9.4 ORDER BY的实现
9.4.1 使用索引的已有顺序
9.4.2 filesort算法
9.5 JOIN的实现
9.5.1 JOIN语句的使用
9.5.2 Nest Loop Join算法
9.5.3 Block Nest Loop Join算法
9.5.4 Batched Key Access Join算法
9.5.5 Hash Join算法
9.5.6 Sort Merge Join算法
9.6 小结
第10章 分布式数据库
10.1 分布式数据库概要
10.1.1 分布式数据库的特点
10.1.2 系统的扩展方式
10.1.3 分布式数据库中的技术难点
10.2 数据的分片方式
10.3 分布式数据库实践——**分布式数据库系统
10.3.1 **分布式数据库系统架构
10.3.2 高可用组的初始化
10.3.3 数据的分片
10.3.4 系统的高可用性
10.3.5 系统的可扩展性
10.4 小结
附录A 数据库与IO资源控制
|
|