orczhou.com

  • 首页
  • 云数据库性能/架构与选型
    • 云数据库性能综述
    • AWS RDS架构与选型
    • 阿里云RDS架构与选型
    • 阿里云ARM/x86 RDS对比
    • 华为云鲲鹏/x86 RDS对比
    • AWS Graviton/x86 RDS对比
  • 关于MySQL
    • 读《高性能MySQL》
    • 如何学习MySQL
    • MySQL版本现状与选择
    • MySQL的历史版本
  • 其他
    • 云数据库行业动态
    • 关于生活
    • 归档页面
    • 管理页面
    • 关于orczhou
  • 云数据库行业动态@2025-06-20

    2025-06-20

    标题:openGauss 发布 MCP Server支持SQL查询/运维管理等功能;阿里云PostgreSQL发布承诺型Serverless

    重要更新

    openGauss 发布 MCP Server[1],面相LLM提供更为便捷的SQL执行能力、此外还可以帮助开发者更为快捷的实现用户管理,安装,监控等能力(DataKit MCP Server)。

    更新详情

    • RDS高可用系列和集群系列提升多可用区部署实例的SLA,双可用区统一提升至99.995%,三可用区及以上统一提升至99.997%。[4]
    • RDS PostgreSQL发布承诺型Serverless能力,该能力是指在已购买的固定规格RDS PostgreSQL实例上(计费类型包括包年包月或按量付费)启用Serverless功能。[5]
    • RDS PostgreSQL 17新增支持插件AI(rds_ai)(1.0.0)、高速全文检索(RUM)(1.3)、定时任务(pg_cron)(1.6)和pg_partman(5.2.4);RDS PostgreSQL 14~15版本新增支持插件AI(rds_ai),版本为1.0.0。RDS PostgreSQL 13新增支持插件SQL限流(rds_ccl),版本为1.2[6]
    • RDS PostgreSQL支持全球多活数据库,该方案基于RDS PostgreSQL的原生物理复制与数据传输服务(DTS),实现了一站式、高性价比的异地灾备解决方案[7]
    • RDS PostgreSQL 高性能云盘的基准IO性能提升,IOPS最高提升22400,IO带宽最高提升350 MB/s。[8]
    • RDS SQL Server支持对外网链路强制进行SSL加密 [10]
    Azure(微软云)
    • Azure SQL 托管实例更快的管理操作[14]
    • Azure Database for PostgreSQL 17 迁移服务支持[17]
    GCP(谷歌云)
    • Cloud SQL for MySQL 之前的版本升级到8.4,提供了更加便捷升级方式.[20]
    • BigQuery 现在提供 Gemini 增强型 SQL 翻译功能
    Oracle云
    • Data Studio 增强功能:使用 SQL 语法查询远程目录[46]
    火山云(字节)
    • veDB MySQL 支持了跨地域备份[21]、支持修改最大连接数[22]、存储空间上限调整[23]等功能
    • 文档数据库 MongoDB 支持包年包月实例转为按量计费实例[24]、支持更多监控指标[25]
    AWS(亚马逊云)
    • Amazon RDS 在数据库预览环境中支持 MySQL 9.3 [50]
    • Amazon RDS for Db2 支持待机模式下的跨区域副本[51]
    腾讯云
    • 云数据库 MySQL、TDSQL-C MySQL 针对数据库审计优化了配置日志投递至 Ckafka 成功后的界面展示等功能[64]

    参考链接

    • [1] https://mp.weixin.qq.com/s/jEDXFwRYtAWmZ11HV-W-1w
    • [4] https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/the-sla-for-rds-instances-deployed-across-multiple-zones-is-increased
    • [5] https://help.aliyun.com/zh/rds/apsaradb-rds-for-postgresql/assured-serverless-apsaradb-rds-for-postgresql-instances-in-public-preview
    • [6] https://help.aliyun.com/zh/rds/apsaradb-rds-for-postgresql/release-notes-for-alipg
    • [7] https://help.aliyun.com/zh/rds/apsaradb-rds-for-postgresql/global-active-database/
    • [8] https://help.aliyun.com/zh/rds/apsaradb-rds-for-postgresql/product-function-change-general-cloud-disk-benchmark-io-performance-improvement
    • [10] https://help.aliyun.com/zh/rds/apsaradb-rds-for-sql-server/configure-ssl-encryption-for-an-apsaradb-rds-for-sql-server-instance
    • [14] https://azure.microsoft.com/updates?id=496292
    • [17] https://azure.microsoft.com/updates?id=496125
    • [20] https://cloud.google.com/sql/docs/mysql/upgrade-major-db-version-inplace
    • [21] https://www.volcengine.com/docs/6357/1578691
    • [22] https://www.volcengine.com/docs/6357/1578663
    • [23] https://www.volcengine.com/docs/6357/73614
    • [24] https://www.volcengine.com/docs/6447/71015
    • [25] https://www.volcengine.com/docs/6447/1555171
    • [46] https://docs.oracle.com/iaas/releasenotes/autonomous-database-serverless/2025-06-data-studio-enhancements-2.htm
    • [47] https://docs.oracle.com/iaas/releasenotes/autonomous-database-serverless/2025-06-select-ai-enhancements-1.htm
    • [50] https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html#mysql-preview-environment-version-9-3
    • [51] https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-replication.html
    • [64] https://cloud.tencent.com/document/product/236/81406
    • [65] https://cloud.tencent.com/document/product/1003/61568

  • 云数据库行业动态@2025-06-06

    2025-06-06

    标题:MariaDB收购高可用产品Galera;ClickHouse融资$3.5亿;Snowflake $2.5亿收购Crunchy Data

    重要更新

    在Databricks以10 亿美元收购Neon后,Snowflake以2.5亿美元收购Crunchy Data,一家深度PostgreSQL产品服务商。来自“fairchild”的评论:“它预示着AI Agent将成为数据库资源的主要消费者和创建者,这将从根本上改变数据库的交互模式——从人类驱动转变为机器驱动”。[2]

    MariaDB 宣布收购高可用产品 Galera Cluster。这两个产品一直以来合作紧密,MariaDB通过此次收购,可以向客户提供更具竞争力的企业级高可用方案;而对于Galera Cluster则可以获得更多可靠的客户。[1]

    ClickHouse 宣布融资3.5亿美元C轮融资,本次融资将主要用于全球化业务推进、AI与分析能力增强等方向。

    其他建议关注的重要更新:

    • Amazon Neptune 宣布推出 MCP(模型上下文协议)服务器[75]
    • TDSQL-C MySQL 版发布全球数据库功能,帮助企业构建高可用、低延迟、强一致的全球数据库架构。[83]
    • Aurora DSQL 现已全面GA [78]

    更新详情

    阿里云
    • RDS MySQL标准版高可用云盘主实例新增128核512 GB规格(mysql.x4.16xlarge.2c)。[4]
    • RDS PostgreSQL支持创建集群系列实例。集群系列实例采用计算与存储分离、一主多备的架构[5]
    • RDS SQL Server新增异地容灾功能,该功能基于SQL Server分布式可用性组(Distributed Availability Groups,DAG)和DTS跨地域网络能力 [6]
    Azure(微软云)
    • Azure Database for PostgreSQL 在 PG 17 中支持 pg_cron 扩展 [9]
    • Azure Database for PostgreSQL 的 SSD v2 支持高可用性 [11]
    • Azure Database for PostgreSQL 支持原地升级到 PostgreSQL 17 [12]
    • Azure Cosmos DB for MongoDB (vCore) 触发器和 Azure Functions 的绑定 [14]
    GCP(谷歌云)
    • Cloud SQL for SQL Server 现在提供最大服务器内存推荐功能 [35]
    • Spanner 现已支持 BigQuery 的跨区域联合查询,这使得 BigQuery 用户能够从其 BigQuery 区域以外的区域查询 Spanner 表[36]
    • 您现在可以通过 BigQuery Sharing 功能共享 Pub/Sub 流数据[39]
    • Cloud SQL for SQL Server 现在将查询洞察和索引顾问支持扩展至读副本[43]
    Oracle云
    • HeatWave 支持版本 9.3.1[50]
    火山云(字节)
    • 云数据库 MySQL 版 对于本地盘实例,当实例的 CPU 核数大于等于 8 时,支持为实例配置最大 8T 的存储空间。[15]
    • 云数据库 MySQL 版 为 MySQL 5.7 实例提供 Statement Outline 能力 [16]
    • 云数据库 MySQL 版默认支持 InnoDB 存储引擎,不支持 MyISAM、Memory 或 Archive 存储引擎。并支持自动转换为 InnoDB 存储引擎的功能。[17]
    • 云数据库 PostgreSQL 支持克隆数据库[18]
    • 云数据库 PostgreSQL 支持创建逻辑备份并支持下载与恢复[19]
    • 云数据库 SQL Server 支持在创建数据库账号时指定 Login SID [20]
    • 缓存数据库 Redis 版支持 512MiB 规格 [21]
    • 缓存数据库 Redis 版 开放 Proxy 自研命令[22]
    • 文档数据库 MongoDB 版新增支持将包年包月实例转换为按量计费实例 [51]
    百度云
    • GaiaDB 更新相应计算节点规格集群的磁盘最大存储容量[59]
    • Redis内存型支持清空过期数据[60]
    AWS(亚马逊云)
    • ((2025-05-30)) Performance Insights 的生命周期结束信息(End-of-life information for Performance Insights)[61]
    • RDS 支持 MariaDB 10.11.13 和 11.4.7 [62]
    • Amazon RDS for PostgreSQL 扩展支持版本 R2 11.22-rds.20250508 和 12.22-rds.20250508[66]
    • 成本优化中心支持针对 Amazon Aurora 的建议[71]
    • Amazon Neptune 数据库现已在 AWS 加拿大西部(卡尔加里)和亚太地区(墨尔本)区域推出[74]
    • Amazon Neptune 宣布推出 MCP(模型上下文协议)服务器[75]
    • Aurora DSQL 现已全面推出[78]
    腾讯云
    • 云数据库 MySQL 发布新版本 CPU 弹性扩容功能,支持自动及自定义扩展 CPU,可轻松应对突发压力,保障线上业务稳定性[81]
    • TDSQL-C MySQL 版发布全球数据库功能,帮助企业构建高可用、低延迟、强一致的全球数据库架构。[83]
    • TDSQL-C MySQL 版8.0内核版本更新3.1.16.001,提升数据库性能与稳定性。[84]

    参考链接

    • [1] https://www.businesswire.com/news/home/20250527634819/en/MariaDB-Acquires-Galera-Cluster
    • [2] https://www.wsj.com/articles/snowflake-to-buy-crunchy-data-for-250-million-233543ab
    • [3] https://clickhouse.com/blog/clickhouse-raises-350-million-series-c-to-power-analytics-for-ai-era
    • [4] https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/primary-apsaradb-rds-for-mysql-instance-types
    • [5] https://help.aliyun.com/zh/rds/apsaradb-rds-for-postgresql/rds-cluster-edition#cba0a8c4138u7
    • [6] https://help.aliyun.com/zh/rds/apsaradb-rds-for-sql-server/geo-disaster-recovery/
    • [9] https://azure.microsoft.com/updates?id=495130
    • [11] https://azure.microsoft.com/updates?id=491483
    • [12] https://azure.microsoft.com/updates?id=495135
    • [14] https://azure.microsoft.com/updates?id=491267
    • [19] https://www.volcengine.com/docs/6438/1554707
    • [20] https://www.volcengine.com/docs/6899/1253611
    • [21] https://www.volcengine.com/docs/6293/72111
    • [49] https://docs.oracle.com/iaas/releasenotes/mysql-database/heatwave-rest.htm
    • [50] https://docs.oracle.com/iaas/releasenotes/mysql-database/heatwave-931.htm
    • [51] https://www.volcengine.com/docs/6447/1555171
    • [59] https://cloud.baidu.com/doc/GaiaDB/s/elt5qt0i9
    • [60] https://cloud.baidu.com/doc/SCS/s/ym10cc9fw
    • [61] https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html
    • [62] https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MariaDB.Concepts.VersionMgmt.html
    • [66] https://aws.amazon.com/about-aws/whats-new/2025/06/amazon-rds-postgresql-extended-support-versions-r2-11-22-rds-20250508-12-22-rds-20250508
    • [71] https://aws.amazon.com/about-aws/whats-new/2025/06/cost-optimization-hub-recommendations-amazon-aurora
    • [74] https://aws.amazon.com/about-aws/whats-new/2025/05/amazon-neptune-database-aws-calgary-melbourne-regions
    • [75] https://aws.amazon.com/about-aws/whats-new/2025/05/amazon-neptune-mcp-server
    • [78] https://aws.amazon.com/about-aws/whats-new/2025/05/amazon-aurora-dsql-generally-available/
    • [81] https://cloud.tencent.com/document/product/236/96835
    • [83] https://cloud.tencent.com/document/product/1003/118899
    • [84] https://cloud.tencent.com/document/product/1003/61515

  • 使用Oracle云上的MySQL 9.x作为向量存储

    2025-05-25

    MySQL的向量处理现状

    向量数据库或者说向量处理是,个人认为,最为重要数据库AI能力。目前,各个数据库都在围绕着向量数据库构建更为丰富的LLM/AI相关功能。而MySQL 9最为重要的特性之一就是新增了向量处理能力。当前的版本主要包括了:(a) 向量数据类型;(b) 简单的向量处理函数。其中部分向量处理函数放在了MySQL的企业版或云版本中。

    因为当前MySQL 9系列的版本均为创新版(并不是稳定版),所以相关功能还会不断的迭代和发展。期待未来做出更多丰富功能:(a) 新增向量相似性搜索功能;(b) 并将完整的向量处理能力放到社区版中。后续依旧会持续关注这部分的产品能力。

    本文测试环境为Oracle Cloud,你可以参考在 Oracle 云上免费测试数据库[3]文中创建一个免费的MySQL实例进行测试。

    MySQL中的向量数据类型

    向量数据存储

    在MySQL 9中新增了数据类型vector用来存储向量数据[1],简单的使用方式如下:

    create table vector_t01 (
        id int,
        s_v_01 vector(390),
        s_v_02 vector(390)
    );

    这里表示s_v_01、s_v_02均为390维的向量,每个维度在MySQL中使用4 bytes的单精度浮点类型存储。

    写入向量数据

    为了测试使用方便,这里使用string_to_vector对向量进行转换并进行存储:

    insert into vector_t01 values (1,string_to_vector('[1,2,3]'),string_to_vector('[4,5,6]'));

    查询向量数据

    使用 VECTOR_TO_STRING

    使用 SELECT 直接查询向量数据的话,则返回的是二进制形式,可以使用函数VECTOR_TO_STRING做一次转换:

    select id,VECTOR_TO_STRING(s_v_01),VECTOR_TO_STRING(s_v_02) FROM vector_t01;
    +------+---------------------------------------+---------------------------------------+
    | id   | VECTOR_TO_STRING(s_v_01)              | VECTOR_TO_STRING(s_v_02)              |
    +------+---------------------------------------+---------------------------------------+
    |    1 | [1.00000e+00,2.00000e+00,3.00000e+00] | [4.00000e+00,5.00000e+00,6.00000e+00] |
    +------+---------------------------------------+---------------------------------------+

    如果不使用VECTOR_TO_STRING则返回的是底层的二进制存储内容:

    select id,s_v_01,s_v_02 FROM vector_t01;
    +------+--------------+--------------+
    | id   | s_v_01       | s_v_02       |
    +------+--------------+--------------+
    |    1 |   �?   @  @@  |   �@  �@  �@    |
    +------+--------------+--------------+

    十六进制查询

    如果使用十六进制展示,则有:

    select id,hex(s_v_01),hex(s_v_02) FROM vector_t01;
    +------+--------------------------+--------------------------+
    | id   | hex(s_v_01)              | hex(s_v_02)              |
    +------+--------------------------+--------------------------+
    |    1 | 0000803F0000004000004040 | 000080400000A0400000C040 |
    +------+--------------------------+--------------------------+

    这里的0000803F0000004000004040一共是3个bytes,每个byte表示一个分量,例如:0000803F表示第一个分量,即为单精度浮点型的1.0(感兴趣的可以尝试做个转换,这里不再详述)。

    计算向量距离

    目前,MySQL 支持最为常见的“距离”的计算,具体包括:点积(默认)、欧式距离、余弦距离的计算:

    -- s_v_01: (1,2,3)
    -- s_v_01: (4,5,6)
    SELECT 
      DISTANCE(s_v_01,s_v_02,"DOT") as dis_dot,
      DISTANCE(s_v_01,s_v_02,"COSINE") as dis_cos,
      DISTANCE(s_v_01,s_v_02,"EUCLIDEAN") as dis_ecu
    FROM vector_t01;
    
    +---------+----------------------+-------------------+
    | dis_dot | dis_cos              | dis_ecu           |
    +---------+----------------------+-------------------+
    |      32 | 0.025368213653564453 | 5.196152210235596 |
    +---------+----------------------+-------------------+

    需要注意的是,目前该距离计算函数(DISTANCE[2])仅在Oracle Cloud或MySQL企业版本中提供。后续还将持续关注MySQL所提供的向量产品能力、以及其他GenAI相关功能。

    参考链接

    • [1] MySQL 9.0 Reference Manual :: 13.3.5 The VECTOR Type
    • [2] MySQL 9.1 Reference Manual :: 14.21 Vector Functions
    • [3] 在 Oracle 云上免费测试数据库
  • 云数据库行业动态@2025-05-23

    2025-05-23

    标题:OceanBase发布PowerRAG 、共享存储和桌面版;AWS支持PostgreSQL 18;庆祝MySQL 30活动将与成都举行

    重要更新

    OceanBase发布PowerRAG 、共享存储和桌面版[1]。其中PowerRAG功能是由OB Cloud上的OceanBase提供的全新功能,支持文档存储、分片到向量检索等功能[2];“共享存储”则可以更好的适配各类云存储架构;桌面版则可以在2c6g的环境完成OceanBase部署与体验。

    ACMUG(中国MySQL用户组)组织的庆祝MySQL 30周年,暨ACMUG年度分享,将于23~24日于成都举行,感兴趣的可以去现场与MySQLer们面基。时间:5月23日-24日(13:00-17:50);地址:成都市武侯区吉庆四路188号IMC国际广场成都书声科技(叫叫)四楼演播厅[3]。

    更新详情

    阿里云
    • RDS MySQL全球多活数据库(GAD)支持更多海内外地域。[4]
    • RDS MySQL标准版云盘只读实例新增128核512 GB规格。[5]
    • RDS PostgreSQL的大版本升级功能在蓝绿部署和本地升级等模式的基础上,新增了零停机模式[6]
    • RDS SQL Server新增监控指标sqlserver.alwayson_lagsecs[7]
    Azure(微软云)
    • Cosmos DB支持使用 DiskANN 进行过滤向量搜索[10]
    • Azure Backup 为 Azure Database for PostgreSQL 提供存储备份[11]
    • Azure SQL支持JSON 索引[13]
    • DocumentDB 中支持向量搜索[20]
    • Cosmos DB 支持全局二级索引[22]
    GCP(谷歌云)
    • Spanner 现已支持 BigQuery 的跨区域联合查询[32]
    • BigQuery 发布“连续查询”允许您构建长期有效、连续处理的 SQL 语句,这些语句可以实时分析、处理 BigQuery 中传入的数据并执行机器学习 (ML) 推理。[33]
    • Cloud SQL for MySQL 现已支持次要版本 8.0.42[39]
    • Spanner 支持创建预过滤向量索引,该索引仅索引数据库中符合特定过滤条件的行。使用预过滤向量索引可以将搜索限制为仅适用于满足过滤条件的行,从而提高近似最近邻 (ANN) 搜索器的性能和召回率 [42]
    Oracle云
    • HeatWave支持更完整的网络安全组功能[43]
    AWS(亚马逊云)
    • Aurora、RDS 支持查看开源引擎主要版本的支持日期[45]
    • RDS 支持 MariaDB 10.5.29 和 10.6.22 [47]
    • Aurora Global Database 引入了对最多 10 个辅助区域集群的支持[48]
    • PostgreSQL 18 Beta 1 现已在 Amazon RDS 数据库预览环境中推出[59]

    参考链接

    • [1] https://mp.weixin.qq.com/s/Ax8Iov00ebfjsCy3Afub_Q
    • [2] https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000002951473
    • [3] https://mp.weixin.qq.com/s/3dDU3PH9huyJytM_g3t93w
    • [4] https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/what-is-a-global-active-database/
    • [5] https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/read-only-apsaradb-rds-for-mysql-instance-types
    • [6] https://help.aliyun.com/zh/rds/apsaradb-rds-for-postgresql/upgrade-the-major-engine-version-of-an-apsaradb-rds-for-postgresql-instance/
    • [7] https://help.aliyun.com/zh/rds/apsaradb-rds-for-sql-server/view-standard-monitoring
    • [10] https://azure.microsoft.com/updates?id=491237
    • [11] https://azure.microsoft.com/updates?id=491576
    • [13] https://azure.microsoft.com/updates?id=494265
    • [20] https://azure.microsoft.com/updates?id=492016
    • [22] https://azure.microsoft.com/updates?id=491257
    • [32] https://cloud.google.com/bigquery/docs/spanner-federated-queries#cross_region_queries
    • [33] https://cloud.google.com/bigquery/docs/continuous-queries-introduction
    • [39] https://cloud.google.com/sql/docs/mysql/upgrade-minor-db-version
    • [42] https://cloud.google.com/spanner/docs/find-approximate-nearest-neighbors#filter-vector-index
    • [43] https://docs.oracle.com/iaas/releasenotes/mysql-database/heatwave-nsg.htm
    • [45] https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support-viewing-support-dates.html
    • [47] https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MariaDB.Concepts.VersionMgmt.html
    • [48] https://aws.amazon.com/about-aws/whats-new/2025/05/amazon-aurora-global-database-support-10-secondary-region-clusters
    • [59] https://aws.amazon.com/about-aws/whats-new/2025/05/postgresql-18-beta-1-amazon-rds-database-preview/
    • [60] https://aws.amazon.com/about-aws/whats-new/2025/05/aws-transform-net-generally-available
  • 在Schema-Less场景下使用MySQL:MySQL JSON Path的使用

    2025-05-18

    随着 MySQL 对 JSON 类型的原生支持,操作 JSON 数据已变得非常高效与强大。在过去数年的版本中,MySQL 也在不断地增强 JSON 处理相关的功能。在 JSON 处理中需要非常频繁的使用“JSON Path” 语法,而这部分又是略微复杂的部分,本文将系统的介绍如何在 MySQL 中使用 JSON Path,包括语法规则、各种通配符用法、递归匹配等高级技巧,并通过丰富示例帮助开发者快速掌握。

    什么是 JSON Path?

    JSON Path 是一种表示法,用来描述如何在 JSON 文档中定位数据。类似于文件系统路径,JSON Path 指引着从 JSON 根节点出发,逐步深入结构内部。在 MySQL 中,几乎所有的 JSON相关的函数都会使用到,包括:JSON_EXTRACT()、JSON_SET()、JSON_REPLACE()、JSON_REMOVE()、JSON_CONTAINS()等。

    我们看到的场景的写法类似于:$.name、$.colors[0]、$.store**.price等。

    基础语法说明

    JSON Path的基础语法,遵循以下规则:

    • $:表示 JSON 文档的根节点。
    • .:用于访问对象中的属性。
    • ["key"]:另一种访问对象属性的方式,适合处理特殊字符的 key。
    • [index]:访问数组中的元素。
    • *:通配符,匹配所有子元素。
    • **:递归通配符,匹配所有嵌套层级的元素
    • [start to end]:数组范围选择

    JSON Path 基本示例

    示例表与示例数据

    创建带 JSON字段的表,并写入数据:

    CREATE TABLE t1 (
        id INT PRIMARY KEY AUTO_INCREMENT,
        data JSON
    );
    
    INSERT INTO t1 (data) VALUES
    ('{
      "name": "Alice",
      "age": 25,
      "email": "alice@example.com"
    }');

    提取对象字段

    这里使用基本的$.name引用根节点中属性为name的对象,示例如下:

    mysql> SELECT JSON_EXTRACT(data, '$.name') FROM t1;
    +------------------------------+
    | JSON_EXTRACT(data, '$.name') |
    +------------------------------+
    | "Alice"                      |
    +------------------------------+
    1 row in set (0.00 sec)

    也可以使用如下等价的写法data->'$.name':

    mysql> SELECT data->'$.name' FROM t1;
    +----------------+
    | data->'$.name' |
    +----------------+
    | "Alice"        |
    +----------------+

    访问数组元素

    初始化如下数据:

    -- truncate table t1;
    
    INSERT INTO t1 (data) VALUES
    ('{
      "colors": ["red", "green", "blue"]
    }');

    先访问colors属性,再查找该数组对象的第一个元素(注意:编号是0),故 JSON Path 为$.colors[0],示例如下:

    mysql> SELECT data->'$.colors[0]' AS first_color FROM t1;
    +-------------+
    | first_color |
    +-------------+
    | "red"       |
    +-------------+

    访问数组的范围

    除了像上述展示的,可以使用数值访问数组外,还可以使用0 to 1这样的语法表示一个范围,并访问数组中的多个元素:

    mysql> SELECT data->'$.colors[0 to 1]' AS first_color FROM t1;
    +------------------+
    | first_color      |
    +------------------+
    | ["red", "green"] |
    +------------------+
    
    mysql> SELECT data->'$.colors[1 to 1]' AS first_color FROM t1;
    +-------------+
    | ["green"]   |
    +-------------+
    
    mysql> SELECT data->'$.colors[1 to 2]' AS first_color FROM t1;
    +-------------------+
    | ["green", "blue"] |
    +-------------------+

    使用通配符

    准备示例数据

    为了展示相关的示例,这里先给出一个更为复杂的示例数据:

    CREATE TABLE t1 (
        id INT PRIMARY KEY AUTO_INCREMENT,
        data JSON
    );
    -- truncate table t1;
    
    INSERT INTO t1 (data) VALUES
    ('{
      "store": {
        "book": [
          {
            "category": "fiction",
            "title": "Harry Potter",
            "price": 29.99
          },
          {
            "category": "fiction",
            "title": "Lord of the Rings",
            "price": 49.99
          }
        ],
        "bicycle": {
          "color": "red",
          "price": 19.95
        }
      }
    }');

    使用通配符查询所有book

    则可以使用如下的搜索表达式:$.store.book[*]:

    SELECT data->'$.store.book[*]' AS all_books 
    FROM t1;
    
    mysql> SELECT data->'$.store.book[*]' AS all_books
        -> FROM t1;
    +--------------------------------------------------------------+
    | all_books                                                    |
    +--------------------------------------------------------------+
    | [{"price": 29.99, "title"...}, {"price": 49.99, "title"...}] |
    +--------------------------------------------------------------+

    这里比较容易错误的写成:$.store.book.*、$.store.book.[*]或$.store.book*。

    使用通配符递归查询

    列出所有书店中的书名

    依旧使用上述的数据,这里可以使用递归的通配符(**)查询结构中所有title属性的取值,则'$.store**.title':

    SELECT data->'$.store**.title' AS all_books 
    FROM t1;
    +---------------------------------------+
    | all_books                             |
    +---------------------------------------+
    | ["Harry Potter", "Lord of the Rings"] |
    +---------------------------------------+

    当然,也可以改成直接从“根”处开始递归查找,即$**.title

    mysql> SELECT data->'$**.title' AS all_books  FROM t1;
    +---------------------------------------+
    | all_books                             |
    +---------------------------------------+
    | ["Harry Potter", "Lord of the Rings"] |
    +---------------------------------------+

    类似的,我们还可以取出所有的价格:

    SELECT 
      data->'$.store**.price' AS book_prices 
    FROM t1;
    +-----------------------+
    | book_prices           |
    +-----------------------+
    | [29.99, 49.99, 19.95] |
    +-----------------------+

    小结

    熟悉 MySQL JSON Path Syntax 可以让开发者更加高效操作 JSON 数据。更多参考:

    • The JSON Data Type @ MySQL Reference Manual
  • 云数据库行业动态@2025-05-16

    2025-05-16

    标题: OceanBase创始人阳老师荣誉退休,致敬并祝福;Databricks10亿美金收购创新数据库Neon;MySQL 30周年中国区活动下周举行

    重点更新

    OceanBase创始人阳老师荣誉退休,致敬并祝福[11]。

    Redis 从SSPL协议改成更被社区接受的AGPL协议, 并发布 8.0 版本 [10]。

    Databricks 持续并购,将以 10 亿美元收购极具创新架构的开源数据库 Neon[1][2] 。Neon 提供了Serverless、扩展能力极强、具备非常好的AI特性的数据库服务,Neon 在架构上最大限度的利用了云基础设施能力,如对象存储的性能/持久性/扩展性/可复制性等、EC2的快速扩展/随时可用等,再叠加了PostgreSQL极强的生态能力。

    MySQL 30周年中国区活动将于下周再成都举行,感兴趣的可以去现场围观[3]。时间:5月23日-24日(13:00-17:50);地址:成都市武侯区吉庆四路188号IMC国际广场成都书声科技(叫叫)四楼演播厅[3]。

    其他值得关注的产品更新包括:

    • Google MCP 数据库工具箱支持 Bigtable 连接器 [63]
    • OCI上Oracle Database 23ai 支持使用数据库内转换模型与 Select AI RAG 结合使用,简化向量模型处理[84]

    更新详情

    阿里云
    • RDS MySQL标准版云盘只读实例新增128核512 GB规格(mysqlro.x4.16xlarge.1c)[x]。
    • RDS MySQL 高可用系列升级为集群系列—高可用系列升级为集群系列时支持保留数据库代理。[4]
    Azure(微软云)
    • Cosmos DB for MongoDB 中的数据 API 发布 [5]
    GCP(谷歌云)
    • BigQuery 新增多项 SQL 功能中[9]
    • Bigtable Studio 支持导出查询结果 [13]
    • AlloyDB 支持在 AlloyDB Studio 中使用 IAM 身份验证 [27]
    • 支持使用 Cloud SQL for PostgreSQL 备份迁移到 AlloyDB for PostgreSQL[39]
    • Dataflow 支持构建向量嵌入的提取、转换和加载 (ETL) 数据到AlloyDB [41]
    • Cloud SQL Enterprise Plus 版支持AI 辅助故障排除 [44]
    • Google MCP 数据库工具箱支持 Bigtable 连接器 [63]
    Oracle云
    • Oracle Database 23ai 支持使用数据库内转换模型与 Select AI RAG 结合使用,简化向量模型处理[84]
    火山云(字节)
    • 云数据库 MySQL 支持恢复数据至原实例和批量回档场景下,支持极速恢复,加速恢复任务,提升整体恢复效率[8]。
    • MongoDB 新增支持设置默认白名单,设置默认白名单后,新建实例时会自动选中默认白名单。[89]
    • MongoDB 事件中心新增支持展示事件描述信息,当执行了按备份文件恢复新实例、按时间点恢复到新实例或恢复已删除实例操作后,您可以在事件中心找到对应的事件操作,并在事件描述中查看源实例和新实例的实例 ID 信息。[90]
    百度云
    • ((2025-5-9)) PegaDB支持本地盘[94]
    AWS(亚马逊云)
    • RDS 支持 MySQL 8.0.42[95] 8.4.5 [96]
    • Aurora MySQL 3.09(兼容 MySQL 8.0.40)现已正式发布[99]
    • Aurora 和 RDS for PostgreSQL、MySQL 和 MariaDB 现提供 R8g 和 M8g 实例的预留实例[101]
    • Aurora 和 RDS for PostgreSQL、MySQL 和 MariaDB 现提供适用于 R7i 和 M7i 实例的预留实例[102]
    • RDS for PostgreSQL 支持次要版本 17.5、16.9、15.13、14.18 和 13.21[109]
    • Aurora PostgreSQL Limitless 数据库现在支持 PostgreSQL 16.8[111]
    腾讯云
    • TDSQL-C MySQL 版、云数据库 MySQL发布数据库代理版本1.3.17。[124][130]
    • TDSQL-C MySQL、云数据库 MySQL 只读分析引擎发布了全新内核版本1.2404.24.0与2.2410.6.0。[125]
    • 云数据 MySQL 支持备份保留设置功能,可避免实例误删除导致备份被立即销毁,确保数据可追溯和可恢复性。[126]
    • TDSQL-C MySQL 版、云数据库 MySQL 只读分析引擎实例支持对实例配置进行变更。[127][132]
    • TDSQL-C MySQL 版、云数据库 MySQL 只读分析引擎实例支持了多节点高可用能力。[128][133]
    • TDSQL-C MySQL 版、云数据库 MySQL 只读分析引擎实例支持了配置告警能力。[129][134]
    • ((2025-05-09)) 云数据库 SQL Server 支持表级别账号授权,可针对某一个账号对表的权限进行授予[135]

    参考链接

    • [1] https://www.reuters.com/technology/databricks-buy-startup-neon-1-billion-wsj-reports-2025-05-14/
    • [2] https://www.databricks.com/blog/databricks-neon
    • [3] https://mp.weixin.qq.com/s/V3NN1LOqRObScudH-aZVYA
    • [4] https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/upgrade-an-apsaradb-rds-for-mysql-instance-from-rds-high-availability-edition-to-rds-cluster-edition
    • [5] https://azure.microsoft.com/updates?id=491008
    • [6] https://azure.microsoft.com/updates?id=490995
    • [7] https://azure.microsoft.com/updates?id=489702
    • [8] https://www.volcengine.com/docs/6313/171450
    • [9] https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#group_with_structs
    • [10] https://antirez.com/news/151
    • [11] https://mp.weixin.qq.com/s/j-CgF6CaP-kylz7aB2gWxA
    • [13] https://cloud.google.com/bigtable/docs/manage-data-using-console
    • [27] https://cloud.google.com/alloydb/docs/manage-data-using-studio#authentication
    • [39] https://cloud.google.com/sql/docs/postgres/backup-recovery/migrate-cloud-sql-to-alloydb
    • [41] https://cloud.google.com/alloydb/docs/ai/build-etl-pipeline-alloydb-dataflow
    • [84] https://docs.oracle.com/iaas/releasenotes/autonomous-database-serverless/2025-05-indb-transformer-with-select-ai-rag.htm
    • [89] https://www.volcengine.com/docs/6447/101172
    • [90] https://www.volcengine.com/docs/6447/100903
    • [94] https://cloud.baidu.com/doc/SCS/s/Illxg0vy4
    • [95] https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html
    • [96] https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html
    • [99] https://aws.amazon.com/about-aws/whats-new/2025/05/amazon-aurora-mysql-3-09-compatible-mysql-8-0-40-generally-available
    • [101] https://aws.amazon.com/about-aws/whats-new/2025/05/amazon-aurora-rds-postgresql-mysql-mariadb-reserved-instances-8g-m8g
    • [102] https://aws.amazon.com/about-aws/whats-new/2025/05/amazon-aurora-rds-postgresql-mysql-mariadb-reserved-instances-r7i-m7i
    • [109] https://aws.amazon.com/about-aws/whats-new/2025/05/amazon-rds-postgresql-supports-new-minor-versions/
    • [111] https://aws.amazon.com/about-aws/whats-new/2025/05/amazon-aurora-postgresql-limitless-database-postgresql-16-8
    • [124] https://cloud.tencent.com/document/product/236/89741
    • [125] https://cloud.tencent.com/document/product/236/115774
    • [126] https://cloud.tencent.com/document/product/236/118344
    • [127] /document/product/236/118296
    • [128] /document/product/236/118297
    • [129] /document/product/236/117338
    • [130] https://cloud.tencent.com/document/product/1003/89751
    • [131] https://cloud.tencent.com/document/product/1003/109576
    • [132] /document/product/1003/118299
    • [133] /document/product/1003/118300
    • [134] /document/product/1003/115672
    • [135] https://cloud.tencent.com/document/product/238/43236
Next Page→
  • “众鸟高飞尽 孤云独去闲”
  • —唐 李白

关于我

© 2022

orczhou.com

·

Theme by Brian Gardner

本作品采用知识共享许可协议 许可协议进行许可。