高并发,高性能,高可用MySQL 实战-未来的数据库什么样
mysql8.0有什么新特性
- 窗口函数(window functions)
- 以某个列为分隔,分为多个窗口
- 在窗口内执行特定函数
select *,rank() over (partition by customer_id ORDER BY amount desc) as ranking from payment;
- 隐藏索引
- 暂时隐藏某个索引
- 可以通过隐藏和显示索引,来测试索引的作用
show index from payment;
alter table payment alter index fk_payment_rental invisible; # 隐藏索引
alter table payment alter index fk_payment_rental visible; # 显示索引
- 降序索引
- 8.0之前只有升序索引
- 对于很多本来能走索引覆盖的语句,升序索引无法覆盖
- 降序索引解决了此问题
-
通用表表达式
-
UTF-8编码
- utf8mb4作为mysql的默认字符集
- DDL事务
- 8.0支持DDL事务,元数据操作可以回滚
InnoDB Cluster和PXC有什么区别
-
InnoDB Cluster
-
PXC
数据库有哪些分类
- 按用途分类
- OLTP(online transaction processing)
- OLAP(online analytical processing)
- HATP(hybrid transaction/analytical processing)
(1). OLTP
- 在线事务(交易)处理系统
- sql语句不复杂,大都处于事务中
- 并发量大,对可用性要求高
- mysql/postgresql
(2). OLAP
- 在线分析处理系统
- sql语句复杂,数据量大
- 一般以单个事务为单位
- hive/sparksql/greenplum
(3). HTAP(hybrid transaction/analytical processing)
- 混合事务/分析处理
- 混合了两种数据库的特点,实现了一种架构多功能
- 按存储形式分类
- 行存
- 列存
- KV
- 按架构分类
- shared everything
- shared memory
- shared disk
- shared nothing
- 总结:
- 按用途分类:OLTP、OLAP、HTAP
- 按存储分类:行存、列存、KV
- 按架构分类:shared everything、shared memory、shared disk、shared nothing
谁是单体数据库之王
- PostgreSQL特点
- 与mysql类似
- 性能更好,更稳定
- 代码质量更高
- 有赶超mysql的趋势
- Postgres-XL(OLTP)
- GTM管理每个事务的执行
- coordinator解析sql,制定执行计划,然后分发
- DataNode返回执行结果到coordinator
- GreenPlum(OLAP)
- 高性能sql优化器: GPORCA
- slice执行模式
- 总结:
- PostgreSQL是一个完全可以替代mysql的高性能数据库
- Postgres-XL是基于Postgres的分布式事务集群
- GreenPlum是基于Postgres的分布式分析集群
mysql能魔改成什么样
-
polardb架构图
-
日志传送VS共享存储
-
备库如何查询数据
-
总结
- PolarDb对mysql进行了魔改
- 采用了shared disk共享存储的架构
- 将三种log简化为一种redo log
谁在支持双十一
- OceanBase
- 是一个newsql数据库,是HTAP类型的数据库,有行列混存
- OceanBase的查询与更新
谁是国产数据库最闪亮的星
- Tidb
- 一键水平扩容或者缩容
- 金融级高可用
- 实时HTAP
- 云原生的分布式数据库
- 兼容Mysql5.7协议和mysql生态
-
tidb整体架构图
-
tidb server层到存储层的调用
-
tidb协议
打不死的小强
- cockroachDB
- 2015年启动,由google前员工发起
- 完全开源
- 分布式shared-nothing架构
- 兼容PostgreSQL协议
- cockroachDB架构图
- 分层架构
- 每个节点底层都为RocksDB
- 使用raft作为共识协议