无论是数据库、数据仓库、数据湖泊还是数据中台、计算引擎,性能一定是第一公民,性能低下的系统没有可能作为业务支撑系统长期存在。很多数据仓库或Hadoop等大数据阵营的解决方案就存在着明显的问题,它们或许可以存储无限的数据,但是却有很大的性能瓶颈,让越来越多的查询与分析操作变成了批处理和T+1才能完成。这或许可以解释为什么近年来越来越多的商业落地场景中,基于内存计算的解决方案和其它一些新型的基础架构正在不断取代现有架构,究其根本是因为这些系统仅仅把存储引擎作为一等公民,而把算力作为附属于存储的二等公民,自然会出现,数据一入仓湖便沉底的低效问题。
所有真正意义上的高性能系统(既高性能计算与存储)的共通之处有以下三条:
- 计算:高并发计算的能力(HPC)
- 存储:内存与外存的综合优化利用(HPS)
- 网络:高吞吐、低延迟系统(HPN)
它们有着重要性主次先后的顺序:先解决计算能力,然后解决存储的问题,最后再解决网络的问题(计算、存储与网络也是云计算的三要素)。没有任何一个高性能的数据库级别的系统能在不充分释放算力的条件下实现高性能。任何一个鼓吹分布式但是在任一一实例上却不能做到充分并发的系统都是浪费资源且无法创造真正、可持续的商业价值。
数据库的查询语言是与数据库的底层存储和计算方式相适配的,数据库查询语言的效率与其数据库的性能有着必然关联,因此我们将数据库的查询语言和数据库的性能一并讨论。