DB - 什么是NewSQL?
NewSQL这个词至少2011年开始就出现了,不过从一开始就没有特别清晰的定义,现在也差不多。不过,NewSQL出现在NoSQL之后,可以认为是分布式数据库自然演变的一部分,NewSQL尝试解决NoSQL碰到的阻力:
NoSQL一般解释为Not Only SQL,实际上NoSQL最常见有4种,Key-Value Store、Document Store、Column Oriented、Graph,通常是选择Weak Consistency(Eventual Consistency)换取更好的性能和扩展性,通常对SQL支持比较弱。
NewSQL则是尽可能支持SQL(如果说NoSQL只支持10-30% SQL Like,NewSQL支持70%以上SQL,大概是这样),在Consistency Model上更倾向Strong而不是Weak,大约是Linearizability,还有最关键的(个人观点)扩展性上更强调写能力的扩展,MySQL MGR或者是1主(可读写)15备(只读)这种应该算不上New,NewSQL应该支持多个(至少3个以上吧)主(可读写),在数据存储层通常采用Paxos或Raft共识算法支持多份副本(顺便说一句,不要以为因为有Multi-Paxos,采用Paxos的数据库实现并发性能就必然好于Raft),而不是一主多备来支持多份副本,为了优化写能力单机存储引擎通常采用有利于写的LSM-Tree而不是有利于读的B+ Tree。
Consistency Model、对SQL的良好支持这些方面NewSQL和NoSQL相比更接近传统的RDBMS,同时在扩展性(需要强调写能力的扩展,这是难点)上接近NoSQL(NoSQL绝大部分天然支持分布式,扩展性良好)。
NewSQL听起来挺不错的,也是有代价的,比如NewSQL维护比单机数据库复杂、某些分布式数据库要求必须用SSD。2019年OceanBase获得 TPC-C基准测试排名榜首,细看其成本不低,性价比不如传统的RDBMS。传统的单体数据库虽然不能在每年一度的网购狂欢时支持那么高的并发量,但是单机支持50万tpmC是很轻松的(其实对很多客户、大部分场景够用了,TiDB Blog也建议如果没有必要支持高并发用单体数据库就好了),而且交易响应时间通常是5毫秒内,而NewSQL这些分布式数据库交易响应时间可能是20-30毫秒,NewSQL良好支持高并发但是交易响应时间有所牺牲。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-05-04 CFA - 投资学 - 7.投资组合评价
2022-05-04 CFA - 投资学 - 6.有效性市场假说 EMH - Efficient Market Hypothesis
2021-05-04 ES - IK分词器(中文的分词器)
2019-05-04 Java 基础 - 反射
2019-05-04 Java 基础 - final vs static