StoneDB社区答疑第一期
来源:SegmentFault
时间:2023-01-22 15:14:25 210浏览 收藏
怎么入门数据库编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《StoneDB社区答疑第一期》,涉及到MySQL、数据库,有需要的可以收藏一下
当然,目前 StoneDB 的社区建设还正处于初启阶段,我们坚信,开源项目的成长,最终还是要靠社区用户一起来共创,因此,StoneDB 开源社区非常重视社区用户的声音,在 7 月份,我们从各个渠道里收集到了用户的反馈,这里做一个汇总,同步给各位关注 StoneDB 的开发者们,无论您是在校学生还是公司后端研发人员,亦或是某数据库厂商的研发人员,相信本期的社区解答会让您对 StoneDB 有一个更深入的了解。
Q:StoneDB 是基于 MySQL 做的怎么还能叫自主可控呢?你们后面能跟上 MySQL 的生态么?
A: 我们还是要区分“自主”、“可控”、“原创”三个词的准确含义,这样能更好地理解 StoneDB 的数据库定位。我们基于 MySQL 的根本原因,是因为目前 MySQL 客户装机量足够多(截至 2022 年它在整个数据库行业的市场占有率达到了 43.04%,来源:Slintel网站),而使用 MySQL 的客户对 AP 能力的需求也在不断增长,我们要做的是一个具有庞大增量的市场,而不是就只盯着 MySQL 生态玩了,不要误会我们只能做 MySQL,以我们对一体化 HTAP的理解,基于 PostgreSQL 再做一套也是可以的,所以现在的 StoneDB 准确的说法是叫 StoneDB for MySQL。很多人现在被一些极端情绪所影响了,并没有客观的看待“原创”这个事儿,开源世界里,“原创”从来不是最重要的,如果有谁觉得自己做得更好就是可以 Fork 出去做他自己的分支版本,且不说现在有多少优秀的数据库是基于 MySQL 和 PG 做的,很多优秀的操作系统也是基于开源的 Linux 做发行版的,这个无论国内国外,都很常见,也无可厚非。说到底,一个开源项目到底能不能把控研发方向、解决实际落地问题、对用户有没有实用价值才是最重要的。而且,我们用了 MySQL 就大大方方承认,不藏着掖着,也绝对不是简单的拿来主义,稍微优化魔改一下就放出去的。我们底层确实用了 MySQL 社区版的代码,但是我们的自主原创的代码量也足够庞大,为了提高综合性能,我们还对原本的 MySQL 社区版源码进行了大量的修改和优化。必须强调的是,我们的 HTAP 内核引擎Tianmu(中文名:天目)完全自主研发,经过了足够时间的测试和打磨,才开源出来给大家使用,这才是我们强调的自主性。
另外,我们内核研发团队对 MySQL 的各个版本代码的熟悉程度一点儿也不亚于 MySQL 原厂团队,我们有超过 10 年内核研发经验的数据库老兵,有超过七年近 200 万行内核代码的积累,更重要的是,我们对 MySQL 和 HTAP 的理解不单是从工业界上的应用实践,还有学术上的深刻认知,我们对数据库学术界的最新理论保持高度的关注,基本上所有经典的 HTAP 学术论文、国际顶会和期刊,从原始概念的提出到目前最新的研究进展,我们的架构师都深入研究过并从中选择最优可实现的方案落地到我们 StoneDB 的内核设计上——可以说,工业界的丰富实践和学术上的与时俱进就是我们可控性的来源。
现在我们是在做 5.6 和 5.7 的版本,8.0 也在计划中,不用担心我们跟不上,发行版跟上 Upstream 是我们的基本素养。只不过,我们要做的,是连 Oracle 自己都舍不得开源的发行版,这才叫真的玩开源,我们不是那种随便魔改一下开源项目就拿出来说自己自主创新了,我们的自主创新是实实在在的,是会对全球几百万依赖 MySQL 生态且有 AP 需求的中小企业产生巨大实用价值的。当然,未来我们还会有云原生架构,这都是必须会有的,数据库上云是大势所趋,我们只会顺势而为。可以明确的是,一个成熟的、真正的 HTAP 数据库应该有的功能和架构,StoneDB 都会有。
Q:StoneDB 和 TiDB 比怎么样?对硬件条件要求高吗?最早了解的是 TiDB,对外也称 HTAP 数据库,但是生产要求固态硬盘,带宽万兆,普通机械硬盘性能很差。
A: StoneDB 与 TiDB 采用了完全不同的技术架构,TiDB 使用松耦合系统架构,StoneDB 采用单系统双引擎架构,单系统架构集成性更高,实时性更强,对用户更加友好,用户完全无需关注和维护类似 Tikv/Tiflash/TiDB 这么多的底层组件。
从硬件要求方面,单系统架构所需的硬件更少、要求也更低,TiDB 最少需要 3~5 个节点才能完成最小化部署,StoneDB 仅需单节点即可,不像 TiDB 那样对硬件配置有严苛要求,在正常情况下采用“与运行MySQL 相同的硬件配置”就可以感受到 StoneDB 飞一般的性能体验,当然配置越高,性能越好。除此以外StoneDB是完全兼容MySQL的(准确的说,我们不需要 Compatible,因为我们就是 Native),可实现对 MySQL 的无缝切换,业务侧无需做一行代码修改。
另外,TiDB 的开源社区做的确实不错,值得我们学习,不过我们从技术理念上一直不太认可 TiDB 属于 HTAP,他们并不符合真正的 HTAP 数据库定义,还是有一定距离的,或许叫分布式数据库是对的。当然,想必他们也知道自己不是真正的 HTAP,因为他们肯定也对 HTAP 的定义有过研究,只不过可能当年做底层架构时工程实现上没有很好的思路,觉得一体化的路线实现太难了,才做了这么一个杂糅架构的伪HTAP数据库出来。我们知道现在出来打破一些人的认知还是要耗费些精力的,毕竟让他们意识到在国内最早推广 HTAP 概念的团队自己做的却是不符合真实 HTAP 定义的数据库,多少会有些打击到他们,也希望相关同学可以看看我们对真正 HTAP 标准的思考。
Q:StoneDB 比 StarRocks 有哪些优势?
A: StoneDB 与 StarRocks 产品定位不同,StarRocks 定位 OLAP 数据仓库,进行数据分析时需要从 TP 类数据库通过 ETL 导入数据。StoneDB 定位 HTAP 数据库,可以同时支持 OLTP 和 OLAP 。如果非要一较高下的话,那就是 StarRocks 不支持 OLTP。
Q:StoneDB 性能比 MySQL 如何?
A: 在 TP 能力方面,StoneDB 目前与 MySQL 持平。在 AP 能力方面,StoneDB 最高可实现 100 倍性能的提升,StoneDB 产品设计的初衷就是解决 MySQL 本身不具备分析能力的问题。
Q:StoneDB 支持 MySQL8.0 的新特性吗?
A: StoneDB V2.0会支持 MySQL8.0 的新特性,新版本的具体时间以社区正式发文为准。
Q:StoneDB 向量化是后面的工作吗?
A: 是的,向量化相关内容规划在后续 Roadmap,具体时间以官方正式发布为准。
Q:StoneDB 支持 K8S 部署不?
A: 支持,但是在生产环境不建议采用 K8S 部署方式。K8S 其他服务会抢占磁盘 IO,带来性能下降。
Q:大多数列式存储数据库对多表 join 不支持,或者性能差得很,StoneDB 对多表 join 支持如何?
A: StoneDB 是行列混合架构,不是单纯的列式存储。StoneDB 支持多表关联,其优化器采用了知识网格技术,在进行多表关联时,两个列之间的等值映射关系会被自动创建。
Q:StoneDB 只开源单机版吗?集群版本开源吗?
A: StoneDB集群版仍在开发过程中,开发完成后会进行开源,具体时间以官方正式发布为准。
Q:如何在进行不确定的 OLAP 的查询情况下,保证 OLTP 的稳定性?业务数据库最基本增删改还是不能出问题的。
A: 我们推荐使用主从架构:主节点使用 InnoDB 引擎,可读写,支持 OLTP 业务负载;从节点使用 StoneDB 引擎,只读,支持 OLAP 查询负载。
Q:StoneDB 有独立的 Realtime API吗?
A: 暂时还没有。
今天带大家了解了MySQL、数据库的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~
-
499 收藏
-
244 收藏
-
235 收藏
-
157 收藏
-
101 收藏
-
456 收藏
-
214 收藏
-
155 收藏
-
485 收藏
-
436 收藏
-
125 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习