NewSQL是新一代SQL数据库的统称,市场上的分布式数据库大都属于NewSQL范畴。NewSQL的实现有两条技术路线:中间件+传统关系型数据库方式和原生分布式数据库方式。
中间件+传统关系型数据库方式中,中间件不保存数据,负责数据的分片、数据汇总和事务的一致性等功能,后端的关系型数据库负责数据的处理,因此,大都用于数据量大、并发要求高的OLTP场景,在实际使用时,应注意分区键的选择,应用设计时,一个交易尽量不要跨节点使用数据库,以提高分布式数据库的性能。
而原生分布式数据库因重构数据库系统,原生支持分布式事务处理与数据切分。在实际使用时,应根据业务场景,从数据的分片策略、数据的更新方式、数据的存储结构、日志类型、数据的一致性技术等方面进行数据库的选型。如对于写敏感的业务,分片策略可以选择Hash方式,保证数据的平衡分布,数据更新方式可以选择Append-Only方式,提高写性能;分析型业务,在数据库选择时,数据的存储结构可选择列存,数据如需回滚,应支持undo log等。