往期回顾
国产数据库创新集锦——小count也有大智慧⓵顺其自然 ,性能很拉垮
国产数据库创新集锦——小count也有大智慧⓶普通索引,单车变摩托
国产数据库创新集锦——小count也有大智慧⓷位图索引,摩托变赛车
国产数据库创新集锦——小count也有大智慧⓸物化视图,赛车变飞机
国产数据库创新集锦——小count也有大智慧⓹缓存结果,飞机变火箭
国产数据库创新集锦——小count也有大智慧⓺等价改写,平地起惊雷
彬老师:轮到咱们主角国产数据库登场了!近年来,我国自主数据库的跨越式发展,既得益于持续的技术突破,更源于深入骨髓的创新基因。以达梦数据库为例,他们从数据库内核层面入手,创新性地引入动态计数器机制,彻底解决了count(*)的性能痛点,让用户无需任何特殊技巧,就能获得极 致性能体验。
小渣:哇,这个想法牛,直接从内核入手,够彻底!
彬老师:这正是原创数据库企业的优势所在,代码自主可控!我们做个试验。如下所示,少量记录时,count(*)仅需0.2毫秒,插入为32毫秒。
create table t as select * from dba_objects; SQL> insert into t select * from t; 影响行数 1401 已用时间: 32.849(毫秒). 执行号:256. SQL> select count(*) from t; 已用时间: 0.219(毫秒). 执行号:288.
彬老师:随后记录自我复制到15738496时,插入速度从32毫秒变成45秒,而count(*)依然是0.2毫秒左右。
SQL> insert into t select * from t; 影响行数 2869248 已用时间: 00:00:45.028. 执行号:289. 已用时间: 8.689(毫秒). 执行号:290. SQL> select count(*) from t; COUNT(*) --------------- 15738496 已用时间: 0.216(毫秒). 执行号:290.
小渣:这效率太惊人了!对了,Oracle有类似功能吗?
弘老师:没!
大饼:那在极端高并发场景下,计数器会不会成为性能瓶颈?
彬老师:非常专业的问题!确实,在某些极端场景下,维护计数器也会带来少量开销。正因如此,达梦数据库贴心地提供了灵活的配置选项,允许用户根据实际需求 开启或关闭此功能。这种既追求性能又尊重用户选择的设计理念,正是国产数据库日益成熟的体现。关于count(*)的各种优化手段,我整理了如下总结:

弘老师:国产数据库的创新不是 “为了创新而创新”,而是始终围绕 “用户痛点” 和 “技术瓶颈” 双轮驱动。从内核架构重构到行业场景深耕,从代码级优化到生态体系建设,这种 “接地气且动真格的创新”,正是国产数据库能与甲骨文、IBM同台竞技的根本原因。
小渣:国产数据库的创新精神令人敬佩!两位老师,还有哪些精彩的创新案例,可以分享给我们吗?
彬老师:时间不早了,咱们下回再聊吧。
全文完
公众号:收获不止数据库
微信:ljbyxl1213
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9091385/viewspace-3080013/ ,如需转载,请注明出处,否则将追究法律责任。