關系數據庫分為兩種,一種是傳統關系數據,如 Oracle, MySQL,Maria, DB2,PostgreSQL 等等,另一種是 NewSQL,即至少要滿足以下五點的新型關系數據庫:
1. 完整地支持SQL,支持JOIN / GROUP BY /子查詢等復雜SQL查詢;
2. 支持傳統數據標配的 ACID 事務,支持強隔離級別。
3. 具有彈性伸縮的能力,擴容縮容對于業務層完全透明。
4. 真正的高可用,異地多活、故障恢復的過程不需要人為的接入,系統能夠自動地容災和進行強一致的數據恢復。
5. 具備一定的大數據分析能力
傳統關系數據庫用得最多的是 MySQL,成熟,穩定,一些基本的需求都能滿足,在一定數據量級之前基本單機傳統數據庫都可以搞定,而且現在較多的開源系統都是基于 MySQL,開箱即用,再加上主從同步和前端緩存,百萬 pv 的應用都可以搞定了。不過 CentOS 7 已經放棄了 MySQL,而改使用 MariaDB。MariaDB 數據庫管理系統是 MySQ L的一個分支,主要由開源社區在維護,采用GPL 授權許可。開發這個分支的原因之一是:甲骨文公司收購了 MySQL 后,有將 MySQ L閉源的潛在風險,因此社區采用分支的方式來避開這個風險。
在 Google 發布了?[F1: A Distributed SQL Database That Scales](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41344.pdf)?和?[Spanner: Google’s Globally-Distributed Databasa?](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)之后,業界開始流行起 NewSQL。于是有了 CockroachDB,于是有了 奇叔公司的 TiDB。國內已經有比較多的公司使用 TiDB,之前在創業公司時在大數據分析時已經開始應用 TiDB,當時應用的主要原因是 MySQL 要使用分庫分表,邏輯開發比較復雜,擴展性不夠。