首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL语法100%可转换为MemSQL?

MySQL语法100%可转换为MemSQL?
EN

Stack Overflow用户
提问于 2022-08-31 03:44:28
回答 2查看 97关注 0票数 -2

MySQL语法100%可转换为MemSQL?

或者90%?70%?

只是试图判断这是另一种需要学习的单独SQL语言,还是大多数东西都是可移植的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-31 04:33:10

第一件事: MemSQL不再以这个名字存在。他们的制造商在2020年将其更名为SingleStoreDB。

https://docs.singlestore.com/managed-service/en/getting-started-with-singlestoredb-cloud/about-singlestoredb-cloud/singlestoredb-cloud-faq/general.html说:

用户使用MySQL客户端软件连接到SingleStoreDB云服务器。SingleStoreDB云使用与MySQL相同的有线协议,并支持与MySQL类似的SQL语法,以与MySQL客户端软件兼容。

他们所说的“连线协议”的意思是,您可以使用同一个客户端连接到SingleStoreDB。您可以使用同一个客户端连接和验证、发送查询和获取结果,但是SQL查询(发送它们时只是字符串)不一定兼容。

还有其他使用MySQL有线协议的数据库产品: MariaDB、TiDB、ClickHouse、PlanetScale和Dolt。它们都有略微不同的SQL语言支持。

人们怎么说他们的“百分比”兼容呢?

浏览一下MemSQL的文档,有很多MySQL语言看起来很熟悉,比如自动增量和许多内置函数、存储过程和数据类型-- INSERT...ON重复的密钥更新等等。我猜SingleStoreDB是基于几年前的MySQL叉的。

SingleStoreDB有一些没有在MySQL中实现的专有特性。类似地,MySQL有一些不在SingleStoreDB中的特性(我只是随机浏览了一个部分:JSON内置函数,因为它是相对较新的MySQL添加。我发现SingleStoreDB和MySQL在这方面完全不同)。

但是,有许多功能似乎是兼容的。或者他们是?这两个数据库都支持使用WITH语法的通用表表达式,但MySQL支持WITH RECURSIVE,而SingleStoreDB不支持。

但是SingleStoreDB支持它自己的扩展,而MySQL没有相应的扩展,比如数组和记录类型。

如果您可以度量每个数据库的SQL语法,并计算每个解析树中的终端和非终端,并使用它来度量一个精确的兼容性百分比,那么您将如何处理这些信息?

假设答案是80%的语法对于这两个数据库来说是通用的。这是否意味着不需要对项目中的查询进行检查?不-你所有的疑问都需要审查。这意味着您需要仔细测试并研究这两种产品的文档以了解差异。

抱歉,当你把代码从一个平台移植到另一个平台时,没有捷径。你只需要集中精力,学习和测试,这需要时间。

顺便说一句,在选择支持MemSQL:https://dom.as/2012/06/26/memsql-rage/之前,您还应该阅读这个博客--它是由一位高级MySQL开发人员编写的,因此可以被认为是有偏见的,但他也是一位受人尊敬的数据库性能专家,他很好地支持他的观点。

票数 3
EN

Stack Overflow用户

发布于 2022-08-31 12:24:54

由于支持OLAP和OLTP工作负载的“通用存储”特性,MemSQL正在成为SingleStore。

SingleStore支持所有MySQL数据类型和95%的MySQL函数。在此基础上,SingleStore还有其他新函数和索引/键。

SingleStore还不支持的唯一东西是外键,除了可以保留MySQL模式并轻松地将数据迁移到SingleStore之外。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73550651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档