AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

MySQL 支持 JavaScript,目前处于预览阶段

作者:Renato Losio

  • 2024-01-16
    北京
  • 本文字数:1105 字

    阅读完需:约 4 分钟

MySQL 支持 JavaScript,目前处于预览阶段

最近,Oracle 宣布 MySQL 数据库服务器支持 JavaScript 函数和过程。用于存储过程的 JavaScript 目前处于预览阶段,仅适用于 MySQL 企业版和 MySQL Heatwave。


引入 JavaScript 支持让开发人员能够在数据库中实现高级的数据处理逻辑。通过最小化数据库服务器和客户端应用程序之间的数据移动,存储函数和过程可以降低延迟、网络开销和向外流量成本。Oracle 高级首席软件工程师 Øystein Grøvlen 和技术咨询委员会成员 Farhan Tauheed 写道:


支持 JavaScript 存储程序不仅可以利用庞大的生态系统来提高开发人员的生产力,而且将会有更多的开发人员具备编写存储程序所需的必要技能。换句话说,开发企业现在可以利用广泛可用的 JavaScript 技能集进行后端开发,吸纳更多的开发人才。


在常见的新特性应用场景中,Oracle 强调了数据提取、数据格式化、近似搜索、数据验证、压缩、编码和数据转换,得到了社区的积极响应。发布公告中提供了一个示例函数,JavaScript 代码直接被嵌入到 SQL 定义中:


CREATE FUNCTION gcd_js (a INT, b INT) RETURNS INTLANGUAGE JAVASCRIPT AS $$  let [x, y] = [Math.abs(a), Math.abs(b)];  while(y) [x, y] = [y, x % y];  return x;$$;
复制代码


来源:Oracle 博客


当使用传统的 CALL 语句调用函数时,SQL 类型和 JavaScript 类型之间会发生隐式类型转换。文档 提到,对 JavaScript 的支持是基于 ECMAScript 2021 标准,并支持所有整数、浮点数和 CHAR/VARCHAR* 类型变体。Grøvlen 和 Tauheed 补充道:


为实现最佳的端到端性能,MySQL 和 JavaScript 的集成使用了自定义 VM,基于 GraalVM 的 ahead-of-time(AOT)编译,将语言编译成本机二进制表示,实现快速的处理。GraalVM 有自己的 ECMAScript 2021 标准 JavaScript 实现。尽管它是用 GraalVM 的 Polyglot 框架实现的,但在性能方面仍然具有竞争力。


GraalVM 运行时包括 JDK、语言实现(JavaScript、R、Python、Ruby 和 Java)以及具有沙箱功能和工具支持的托管虚拟机。MySQL-JavaScript 可在 MySQL 企业版和 MySQL Heatwave 云服务(OCI、AWS 和 Azure)中使用,但 MySQL 社区版不提供支持。


MySQL 并不是第一个支持在存储过程中使用 JavaScript 的开源关系型数据库,PostgreSQL 使用了最为流行的 JavaScript 语言扩展 PLV8。PostgreSQL 当前所有版本均支持 PLV8,包括像 Amazon RDS 这样的托管服务,并可用在存储过程和触发器中。


Oracle 在 YouTube 发布了三个 MySQL HeatWave 视频,演示了如何使用 JavaScript 存储程序来运行 Mustache 库、验证 Web 表单输入 和 处理 Web URL。


原文链接


https://www.infoq.com/news/2024/01/mysql-javascript-procedures/


声明:本文为 InfoQ 翻译,未经许可禁止转载。


2024-01-16 08:007131

评论

发布
暂无评论
发现更多内容

Dubbo源码解析-开始篇

冰三郎

Java 分布式 dubbo RPC

Job Model

·大蕾同学

极客时间产品训练营-第一周学习总结(上)

Trigger

极客大学产品经理训练营

产品经理岗位对比分析

DwToretto

第一章作业:认识产品经理

隋泽

产品经理训练营

如何给产品团队更好地提出设计反馈

Justin

心理学 产品设计 团队协作 28天写作

HDFS杂谈:数据读写原理

罗小龙

hadoop hdfs 28天写作

HTML(三)——在网页中使用图像img

程序员的时光

程序员 28天写作

产品经理训练营_Chapter1

芃芃

产品经理训练营

0互联网工作经验的我,面对字节跳动产品岗1723个招聘岗位慌了起来….

Geek_fe4aa7

产品经理训练营 极客大学产品经理训练营

极客大学产品训练营作业(第1周)

朱航

第一节课总结

Jove

产品经理课 - 第一周作业

Atomz

行业产品经理岗位分析

Shine

产品

如果公司要招⼀个⾼级版你

向日葵

产品经理训练营

assignment 01

Jove

Week1:按图索骥—从JD入手做能力建设

Y.

产品 产品经理训练营 极客大学产品经理训练营 求职岗位要求

第一课个人总结

思亭

产品训练营作业1-李沂秾

克比

应聘&招聘

skylar

大数据知识专栏-MapReduce自定义分区技术

小马哥

大数据 hadoop mapreduce 七日更

第一章学习总结

Kalman

产品经理 产品经理训练营

甲方日常 87

句子

工作 随笔杂谈 日常

用户增长产品经理招聘帖

梁媛

产品经理

产品经理岗位对比

思亭

ACC是如何实现的(28天写作 Day12/28)

mtfelix

自动驾驶 28天写作

引爆点

lidaobing

28天写作 引爆点

产品经理第一周第二课总结(第一课手贱删除了,回头再补)

克比

产品经理调研备忘录(何先生的梦呓)

小蜜蜂

产品经理 能力模型 产品经理训练营 何先生的梦呓 数据能力

把我自己做成产品交付给目标岗位

havaguday

【产品经理训练营】【作业】01

anyou

MySQL 支持 JavaScript,目前处于预览阶段_数据库_InfoQ精选文章