高併發,高效能,高可用MySQL 實戰-未來的資料庫什麼樣
阿新 • • 發佈:2022-04-09
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作為共識協議