admin

  • DiskANN 是较为常见的向量数据库搜索算法,作者通过“贪婪搜索”和“健壮性剪枝”(“RobustPrune”)来构建一个“低直径”的图,从而实现高性能的向量搜索。这里的“低直径”很好的保障了点与点之间非常高效(只需要少数几条)完成搜索。“RobustPrune”则是构建低直径的“Vamana”图的关键步骤。本文通过计算推导、示例与试验的方式,来看看“RobustPrune”如何实现“低直径”图的构建,而这也正是 DiskANN 算法的核心之一。

    1. RobustPrune 概述

    论文中的原始描述如右图。

    可以这样理解:在找到 \(p \) 的若干“邻居”后(邻居集合记为 \(N_{out}(p) \) ),由于“边”(出度)数量有限(这里是 \(R \) ),故需要进行“剪枝”,那么这里的“剪枝”方法即为“RobustPrune”:

    • 在 \(N_{out}(p) \) 中找出距离 \(p \) 最近的点,记为 \(p^{*} \)
    • 需要“剪枝”时,将满足下列条件的点都“剪掉”:
      • \(\alpha \cdot d(p^{*},p’) \le d(p,p’) \)

    在初次看到,表达式 \(\alpha \cdot d(p^{*},p’) \le d(p,p’) \) 的时候,是比较难理解其背后的用意的,本文则较为详细以分析、推导、“试验”的方式介绍该公式在图构建过程中所取的效果。

    2. 二维空间的示例

    这里以二维空间为例,以一个具体的场景来观察 RobustPrune 的效果。具体的,将上述的“剪枝”操作描述为如下的数学形式:

    2.1 “剪枝”区域计算

    在二维坐标系中有 \(P = (0,0) \, A = (2,0) \) ,考虑该集合:

    $$
    \mathscr{L} = \{ X | \frac{d(X,P)}{d(X,A)} \le \alpha \quad \text{and} \quad d(X,A) < d(X,P) \} $$

    即,在 RobustPrune 中落入该区域的点,将被剪枝。

    这里 \(\alpha \) 是一个常数,且 \(\alpha \gt 1 \) 。 假设, \(\mathscr{L} \) 中的点 \(X\) 坐标是 \((x,y) \),那么推导 \(x \, y \) 需要满足怎样的限制条件。

    在上述的“数学”问题中,点 \(P = (0,0) \) 即为论文算法中的 \(p \),点 \(A \) 即为论文算法中距离 \(p \) 点最近的邻居 \(p^{*} \)。问题中的 \(x \, y \) 限制提交,即为论文中的“剪枝”条件。

    根据“简单”的数学推导(详细推导可以参考附录,为了连续性这里暂不详述),有如下结果,即坐标 \((x , y) \) 需满足如下条件:

    $$
    (x-\frac{2\alpha^2}{\alpha^2-1})^2 + y^2 \le \frac{4\alpha^2}{(\alpha^2-1)^2}
    $$

    可以看到,这是一个以 \(\frac{2\alpha}{\alpha^2 -1} \) 为半径,以 \((\frac{2\alpha^2}{\alpha^2-1},0) \) 为圆心的圆内部区域(包括边缘)。

    更为具体的,取 \(\alpha = 1.2 \),则在坐标系中,该区域为右图。

    即,当 \(P \) 点、 \(A \) 点确定时,落入右侧图形中阴影部分的点,均会被“剪枝”。

    2.2 实际“剪枝”区域

    更为一般的,如果在平面中任意去一些点,也有类似的结论。其对应的“剪枝圆”(有的地方会称为“遮蔽空间),则有如下的形式:

    考虑右图中, \(A \) 为距离 \(P \) 最近的邻居,那么看看点 \(B \)、\(C \) 是否会被遮蔽。

    与上述推导类似的,可以计算出对应的“剪枝圆”如右图阴影部分,因为 \(C \) 点恰好落在该区域(且又因为邻居数量超过最大出度),故 \(C \) 将被从邻居中删除。

    这就是 RobustPrune 在二维空间的效果。更进一步的,为什么这样进行剪枝就可以保障“低直径”呢?

    3. “剪枝”、不“剪枝”的对比

    为了进一步加深对 RobustPrune 效果的理解,我们考虑这样的问题:在一个 Vamana 图的构建过程中,使用 RobustPrune 进行“剪枝”和不使用该方法剪枝,构建的图会有什么不同?

    在进行正式的试验验证之前,我们有理由这样去考虑:因为“出度” \(R \) 是固定的值,将距离 \(A \) 很近的点从候选邻居中删除,可以避免某些区域邻居过于集中,并将该位置预留给距离 \(P \) 远一些的邻居,这可能会有利于降低图的直径。

    上述理解,即为 RobustPrune 的直觉建立的比较核心的理解。

    为了更好的理解上述内容,并验证上述“直觉”,这里通过程序随机生成30点,并尝试构建 Vamana 图,在构建过程中对比使用 RobustPrune 剪枝和不进行剪枝,看看两种方式构建的图有什么差异。

    3.1 剪枝、不剪枝对比图

    具体的实现程序参考:Vamana Graph.ipynb。程序中,先生成 30 个随机的点,如 Figure 1;然后分别使用带有“剪枝”、没有“剪枝”的算法,生成图,如 Figure 2、Figure3。

    这里可以较为直观的看到,因为这里的“出度” \(R = 3 \) 是固定的,点“3”和点“22”,在剪枝和不剪枝的情况下,两个点之间的距离相差非常大,这也最终导致图的“直径”相差很大。

    4. 拆解 RobustPrune “剪枝”过程

    这里以点“3”,记为 \(P_3 \), 为例,看看RobustPrune “剪枝”是如何进行的。

    首先,在该示例中使用“最近”初始化的方法(而不是随机初始化),即对于每一个点,例如这里的 \(P_3 \) ,初始其“出度”(out degree)候选邻居为距离其最近的10个点,即

    $$ N_{out}(p) = \{ P_{21}\,P_{16}\,P_5 \, P_{22}\, P_0 \, P_{20}\, P_{13}\, P_{12}\, P_8\, P_{23} \} $$

    这里考虑的欧式距离,故最近的点为 \(P_{21} \)。

    4.1 考虑RobustPrune剪枝

    在进行RobustPrune剪枝时,点 \(P_5 \, P_{16} \)处于点\(P_{21} \)的遮蔽区域,故进行剪枝。最终保留了点:\( N_{out}(p) = \{ P_{21} \, P_{22}\, P_0 \} \)

    4.2 不考虑剪枝

    不考虑“剪枝”,又因为这里最大出度\(R=3 \),故保留距离 \(P_3 \) 最近的三个点,则为:\( N_{out}(p) = \{ P_{5} \, P_{16}\, P_{21} \} \)

    4.3 剪枝区域

    在上述的示例中,我们可以绘制考虑 \(P_3 \) 时,取 \(\alpha = 1.2 \)时,剪枝所涉及的遮蔽区域如下,即落到该区域内的点(除了最近的 \(P_{21} \) ),都将被剪枝,如右图。

    并且,因为最大出度 \(R = 3 \),在剩余的点中,再额外选取两个最近的点保留,这里即为:\(\{ P_0 \, P_{22} \} \)。

    所以,经过RobustPrune剪枝,最终 \(\{ P_3 \} \) 保留的“出度”邻居点集为

    $$
    N_{out}(P_3) = \{ P_{21} \, P_{0} \, P_{22} \}
    $$

    可以看到,经过剪枝,在构建 \(P_3 \) 的出度邻居时,在最大出度限制为 \(R=3 \) 时,很好的避免了图邻居的“聚集”,从而最终减低了整个图的直径,就有了上述的最终构建效果:

    5. 最后

    这里给出的示例是二维的,在这个场景下,高维扩展并没有太大的不同。从构建“直觉”的角度,这里给出示例已经足够。对于更高维的场景,如果感兴趣的,可以自己进行推导。

    附录:数学推导

    这里,\(P = (0,0) \, A = (2,0) \),再根据剪枝公式有:

    $$
    \begin{aligned}
    \frac{d(X,P)}{d(X,A)} & \ge \alpha \\
    \frac{\sqrt{x^2+y^2}}{\sqrt{(x-2)^2+y^2}} & \ge \alpha \\
    \frac{x^2+y^2}{(x-2)^2+y^2} & \ge \alpha^2 \\
    x^2+y^2 & \ge \alpha^2((x-2)^2+y^2) \\
    x^2+y^2 & \ge \alpha^2x^2 -4\alpha^2 x + 4\alpha^2 + \alpha^2 y^2 \\
    0 & \ge x^2 – \frac{4\alpha^2 x}{(\alpha^2-1)} + \frac{4\alpha^2}{(\alpha^2-1)} + y^2 \\
    0 & \ge (x- \frac{2\alpha^2}{(\alpha^2-1)})^2 – (\frac{2\alpha^2}{(\alpha^2-1)})^2 + \frac{4\alpha^2}{(\alpha^2-1)} + y^2 \\
    (x- \frac{2\alpha^2}{(\alpha^2-1)})^2 + y^2 & \le (\frac{2\alpha^2}{(\alpha^2-1)})^2 – \frac{4\alpha^2}{(\alpha^2-1)}\\
    (x- \frac{2\alpha^2}{(\alpha^2-1)})^2 + y^2 & \le (\frac{2\alpha}{\alpha^2-1})^2 \quad \blacksquare
    \end{aligned}
    $$

  • This content is password-protected. To view it, please enter the password below.

  • 标题:阿里云/火山引擎MySQL均支持向量索引;PolarDB支持LLM推理PolarKVCache;火山MySQL支持ARM实例

    重要更新

    不约而同,近期火山引擎 MySQL[52]、阿里云 MySQL[10]分别支持向量类型的索引与搜索能力,均使用 HNSW 索引,非常大程度弥补了开源MySQL的弱项。

    阿里云 PolarDB 支持在进行大语言模型(LLM)推理时,提供额外的 PolarKVCache 以加速推理效率。该功能处于内测阶段[11]。从文档描述,提到了可以支持与SGLang、vLLM等集成。

    「第八届中国PostgreSQL数据库生态大会」上周在杭州圆满落幕。在颁奖环节:腾讯OpenTenBase获年度开源影响力奖;IvorySQL获年度产品创新奖;Pigsty获PostgreSQL万磁王奖[2]

    更新详情

    华为云
    • TaurusDB 支持动态脱敏[87]
    • TaurusDB 智能DBA SQL限流支持查询历史规格[88]
    • TaurusDB Serverless支持冷热分离能力[89]
    • TaurusDB 手动备份支持批量删除[90]
    • RDS for MySQL支持8.0.41内核版本。[91]
    • RDS for MySQL支持8.4。[92]
    • RDS for MySQL变更规格可以选择不占用IP。[93]
    • RDS for MySQL支持极速型SSD V2存储类型。[94]
    • RDS for MySQL异常智能诊断增加复制延迟。[95]
    • RDS for SQL Server支持规格变更自动还原。[96]
    • RDS for SQL Server支持搜索指定的数据库和账号名称。[97]
    阿里云
    • RDS MySQL深度集成企业级向量数据处理能力、原生支持最高16,383维向量存储与计算,集成优化的HNSW索引算法提供高性能检索能力,助力知识库检索、语义搜索、推荐系统等AI应用在MySQL生态快速落地。[10]
    • PolarDB 支持在进行大语言模型(LLM)推理时,提供额外的 PolarKVCache 以加速推理效率。该功能处于内测阶段[11]
    • PolarDB 提供兼容“文档数据库”的访问能力,即可通过标准的文档数据库驱动(如Python的pymongo、Node.js的mongoose以及Go的MongoDB驱动等)无缝接入[12]
    • PolarDB 支持 Ray 框架的集成,尝试帮助用户在数据库中直接使用常见的机器学习算法[13]
    Azure(微软云)
    • Database for PostgreSQL Flexible Server 比利时中心正式上线[31]
    • Database for PostgreSQL Flexible Server 中的 pg_squeeze 已更新至 1.9.1 版本[32]
    • Database for PostgreSQL Flexible Server 中的 ip4r 扩展正式上线[33]
    • Database for PostgreSQL Flexible Server 中的 credcheck 扩展正式上线[34]
    • Azure SQL T-SQL 中的正则表达式支持 [35]
    • Azure MCP Server for Azure Database for MySQL 正式上线[36]
    GCP(谷歌云)
    • BigQuery 数据传输服务现在支持增量数据传输[41]
    • Spanner 的默认版本现已设为查询优化器版本 8[47]
    • AlloyDB 现在支持读取池实例的水平自动扩缩容[48]
    Oracle云
    • GoldenGate 功能的增强:ZeroETL pipelines、High availability Cross-region等[49]
    火山云(字节)
    • 云数据库 MySQL 版提供了 FlexPL 云盘和 PL0 的云盘存储类型,最大分别为实例提供 32000 GiB 和 16000 GiB 的存储空间。[51]
    • MySQL-支持构建并使用 ANN 索引对存储的向量进行搜索,即 HNSW 算法构建向量索引。[52]
    • MySQL-允许在执行需要重建表的 DDL 的时候启动多个线程以索引为粒度并行地执行排序、insert 和 flush 操作,充分利用多核优势。[54]
    • 为 MySQL 5.7 引入 INSTANT(即时)算法,对部分 ADD COLUMN 操作,不再修改用户原有数据,只需对表元信息进行修改,从而大幅缩小大表加列所需的时间,减少对系统的影响。[55]
    • MySQL 提供一种配置默认合并阈值的方式,以便用户更灵活地调整 InnoDB 索引的合并阈值,从而在云盘等输入/输出(IO)带宽成为瓶颈的场景下,获得更优的性能。[56]
    • MySQL-支持基于 ARM 架构的产品规格。[64]
    • MySQL-支持 RockDB 的引擎类型。[65]
    • PostgreSQL-支持云盘存储类型,可创建存储类型为 FlexPL 云盘或 PL0 云盘的实例,最大分别支持 32000GB 和 16000GB 的存储空间。[72]
    • open serach-云搜索服务将 DiskANN 算法引入到 OpenSearch 中,实现了性能型和容量型的最优结合,并通过 RaBitQ 量化技术进行更高性能、更低成本的迭代,实现更大数据规模下更低成本的向量存储和检索能力。[75]
    • MongoDB-新增支持在创建 MongoDB 8.0 实例时,直接为实例开启向量索引功能。[81]
    百度云
    • 云数据库 RDS PostgreSQL 支持通用型实例
    • 云数据库 RDS MySQL创建页面重构,增加订单价格明细,方便用户查看不同资源的计费信息。
    AWS(亚马逊云)
    • RDS for SQL Server 支持 Developer Edition[98]
    • Amazon RDS 在数据库预览环境中支持 MySQL 9.5[99]
    • Amazon RDS for SQL Server 推出新一代实例,优化 CPU 使用率,价格最多可降低 55%。[102]
    • 现推出数据库节省计划,最高可节省 35% 的费用[105]
    • Amazon RDS for Oracle 和 SQL Server 现在支持高达 256 TiB 的存储空间,可通过添加额外的存储卷来实现。[107]
    腾讯云
    • 云数据库 MySQL 分析引擎发布了全新的内核版本4.2506.2.0和2.2410.14.0,支持了诸多全新的内核特性,并对系统问题进行了修复和优化。[124]
    • 云数据库 MySQL 8.0内核版本更新20221002、20241009。[125]
    • TDSQL-C MySQL 版数据库代理在调整配置时的切换时间支持选择滚动升级,并支持设置切换的等待时间,您可以根据业务实际情况,设置切换的等待时间以实现更平滑的变配。[126]
    • TDSQL-C MySQL 版分析引擎发布了全新的内核版本4.2506.2.0和2.2410.14.0,支持了诸多全新的内核特性,并对系统问题进行了修复和优化。[127]
    • TDSQL-C MySQL 版实例形态为 Serverless 的集群新增支持了圣保罗、曼谷地域。[128]

    参考链接

  • 标题:Azure发布新数据库HorizonDB;OceanBase发布向量数据库seekdb;火山云支持 NL2SQL

    重要更新

    OceanBase 年度发布会召开[3],全新发布轻量向量数据库 seekdb [1],支持嵌入式、Server两种模式,帮助开发者快速简单的构建向量存储与搜索能力。全新发布 PowerMem[2](兼容Mem0),向 LLM 应用提供灵活、持久化的记忆能力。此外,ODC 发布 DataPilot、诊断Agent等能力。

    微软 Azure 发布全新数据库品牌 HorizonDB ,当前处于“private preview” 阶段。从有限的介绍[4][5]来看,这应该是一个“存算分离”的“云原生” PostgreSQL 数据库,对 AI 能力有更多支持,例如 DiskANN 索引、AI 集成等,对标于Aurora、AlloyDB、PolarDB等。此外,Azure DocumentDB 从 Cosmos DB 中独立出来;SQL Server 2025 发布;

    火山云火结合“扣子”发布自然语言查询功能服务 DBW NL2SQL ,通过该服务将自然语言自动生成可执行的 SQL 语句,并执行生成的 SQL 语句[157]

    更新详情

    阿里云
    • RDS DuckDB 分析只读实例(高可用系列)新增了高性价比的通用型规格,并升级了独享型规格 [10]
    • RDS MySQL 马来西亚(吉隆坡)地域新增可用区C,新增后该region共三个可用区
    • RDS MySQL(迪拜)地域新增可用区B,新增后该region共两个可用区
    • RDS SQL Server 新增全局只读账号功能 [18]
    Azure(微软云)
    • Azure Cosmos DB NoSQL 全文搜索支持意大利语和葡萄牙语[22]
    • 适用于 Microsoft Foundry Agent Service 的 Azure Cosmos DB MCP 工具包发布 [23]
    • Azure Cosmos DB 中的 NoSQL 全文搜索模糊搜索发布[24]
    • Azure Cosmos DB for NoSQL 中的向量索引性能改进[25]
    • Azure Cosmos DB 中向量索引的 Float16 数据类型正式上线 [26]
    • Azure DocumentDB 正式上线:一款开源的、与 MongoDB 兼容的文档数据库服务[33]
    • Azure Cosmos DB 的动态数据掩码[34]
    • Visual Studio Code 中的 Oracle 到 PostgreSQL 迁移工具 [36]
    • 发布 Elastic clusters on Azure Database for PostgreSQL – Flexible Server )[38]
    • Azure Database for PostgreSQL 支持 pg_duckdb 扩展[42]
    • Azure Database for PostgreSQL 18 正式发布[44]
    • Azure SQL 数据库 DiskANN 向量索引[48]
    GCP(谷歌云)
    • Cloud SQL 现在为现有和新 Google 用户提供免费试用实例
    • Cloud SQL for PostgreSQL 现在支持读取池自动扩缩容[67]
    • Cloud SQL for MySQL 现在支持读取池自动扩缩容 [68]
    • AlloyDB AI 原生向量搜索加速器现已正式发布[69]
    • Cloud SQL 现在为您的 Cloud SQL 提供暴力破解检测和保护
    • AlloyDB AI 在预览版中引入了 自动嵌入生成功能。现在您可以生成大规模嵌入,以便在文本内容上进行语义搜索和检索增强生成 (RAG)。[80]
    Oracle云
    • HeatWave 支持新规格 MySQL.96 [109]
    • 数据库内支持 Select AI RAG[111]
    华为云
    • GeminiDB Redis 接口性能版基于存算分离架构,单分片最高可支持百万QPS[9]
    AWS(亚马逊云)
    • RDS 支持 MySQL 8.4.7 和 8.0.44 版本 [115]
    • RDS 支持 MariaDB 版本 11.4.9、10.11.15 和 10.6.24[116]
    • RDS 优化读取功能现已支持 R8gd 和 M8gd 数据库实例[126]
    • Redshift 现在支持对 Apache Iceberg 表进行即时 (JIT) 分析[127]
    • Amazon Aurora MySQL 3.11(兼容 MySQL 8.0.43)现已正式发布[134]
    腾讯云
    • 云数据库 MySQL 发布数据库代理版本1.3.20。[136]
    • 云数据库 MySQL 支持为已有或新购实例开启实例销毁保护[138]
    • 云数据库 PostgreSQL 支持基于某个已存在实例快速新购同等配置的新实例。[142]
    • 云数据库 PostgreSQL 通过控制台或者 API 操作的账号密码更新单独记录在密码修改时间字段。[143]
    火山云(字节)
    • RDS MySQL-对于本地盘实例,当实例的 CPU 核数大于等于 8 时,支持为实例配置最大 14,000 GB 的存储空间。[144]
    • Redis 版在如下方面优化了额外带宽功能:提高了额外读、写带宽允许修改的上限等 [145]
    • Redis 版为各版本的单节点实例单独新增系统参数模板[146]
    • 支持 AI 搜索与 OpenSearch 实例解耦,可不关联 OpenSearch 实例或关联多个 OpenSearch 实例[148]
    • 云搜索 RAG 场景开发页面提供 API 调用示例,支持 cURL 或 Python 格式。[149]
    • 云搜索在图文搜索场景开发中,支持调用 OCR 识别图片中的文字,实现文字 + 图片的混合搜索。[150]
    • 火山云数据库 DBW NL2SQL 服务新发布了四个插件,分别为 ExecuteSQL、GetTableInfo、ListDatabases 和 ListTables。目前您可以通过该服务将自然语言自动生成可执行的 SQL 语句,并执行生成的 SQL 语句[157]
    • DBW 中的 DBCopilot 智能助手已对接火山引擎数据库官网。目前在火山数据库控制台中,您也可以通过右上角或右下角浮层中的火山助手入口,使用 DBCopilot 的能力。[159]

    参考链接

  • Sysbench QPS 详细数据

    dataaliyunawsazurebaidugooglehuaweioracletencent
    465811705145919721752282336756413
    81054233832870384430585163657810496
    1616609667053197066539893601045619062
    3226390130329246122898626160891170726871
    48304221888911743162749817210671222130822
    643288823324131011915310872243191292132500
    963546327979142672163510899259051284135771
    1283619230681145502220811006246341354239228
    1923839133402145282273510874250481278544717
    2563754334080141602300910888254621368046125
    3843751334071145982260010865258481386046413
    5123859033612147772265210928269361345246814

    Latency (Event) 详细数据

    如下表格分别为:平均延迟 和 95%延迟数据。单位为:毫秒/ms。

    dataaliyunawsazurebaidugooglehuaweioracletencent
    410.9442.2349.3436.5141.0925.5119.6011.23
    813.6642.5650.1637.4647.0827.8921.8913.72
    1617.3443.1754.1340.7553.3530.7727.5415.11
    3221.8244.1962.2946.8766.7635.8049.2021.42
    4828.4045.7373.5653.0987.9841.0170.7028.03
    6435.0249.3887.9160.14105.9447.3689.1635.44
    9648.7261.75121.0979.86158.5166.69134.5448.30
    12863.6575.08158.31103.73209.2693.51170.0958.72
    19290.01103.44237.81151.97317.68137.94270.2277.27
    256122.71135.18325.28200.21423.12180.92336.6799.88
    384184.18202.80473.18305.70635.50267.27498.30148.89
    512238.72274.02623.17406.61842.19341.93684.53196.77
    dataaliyunawsazurebaidugooglehuaweioracletencent
    414.2144.9856.8439.6552.8929.7226.6813.22
    817.0144.1756.8441.8569.2932.5332.5316.41
    1620.7444.9862.1946.6381.4836.8944.9818.61
    3231.3748.3471.8357.87116.8043.3989.1627.66
    4841.1051.0287.5669.29139.8550.11118.9237.56
    6452.8958.92108.6881.48161.5157.87153.0249.21
    9677.1980.03155.80114.72219.36102.97215.4466.84
    12897.5594.10200.47150.29282.25123.28248.8382.96
    192125.52147.61303.33211.60427.07196.89383.33108.68
    256164.45207.82419.45277.21559.50282.25458.96139.85
    384248.83308.84612.21397.39831.46502.20657.93204.11
    512320.17404.61787.74520.621089.30502.20893.56267.41

    MySQL 参数对比表格

    dataaliyunawsazurebaidugooglehuaweioracletencent
    have_sslDISABLEDYESYESDISABLEDYESDISABLEDYESDISABLED
    innodb_buffer_pool_size9.75GB11GB12GB12GB11GB9GB17GB12GB
    innodb_doublewriteONOFFOFFONONONONON
    innodb_flush_log_at_trx_commit11111111
    innodb_flush_methodO_DIRECTO_DIRECTfsyncfsyncO_DIRECTO_DIRECTO_DIRECTO_DIRECT
    innodb_io_capacity200002002002000500012000125020000
    innodb_read_io_threads44NA84424
    innodb_write_io_threads44NA84444
    log_binONOFFONONONONONON
    performance_schemaOFFOFFONOFFONOFFONOFF
    rpl_semi_sync_master_enabledONNANAONNAONNAON
    rpl_semi_sync_master_timeout1000NANA10000NA10000NA10000
    sync_binlog11110001111
    thread_pool_size8NA4NA4NA164
    version8.0.368.0.438.0.42-azure8.0.32-4.0.0.58.0.41-google8.0.41-2509008.0.40-u8-cloud8.0.30-txsql
    instance_typemysql.x4.large.2cdb.m7i.xlargeGP_Standard_D4ads_v54db-custom-4-16384rds.mysql.x1.xlarge.4.haMySQL.44c
    storage_typecloud_essdio1NAcloud_enhaNACLOUDSSDNAEXCLUSIVE
    storage_size100100100100100100100100
    storage_iopsNA30003000NANANANANA
    cpu_capacity123.9145.373.674.254.6148.3120.9138.1

    补充测试

    在最近的两次 MySQL 测试中,都补充进行了数据量更大的测试。在原测试的基础上,修改了sysbench的数据准备参数,补充测试参数:

        # cpu-io mixed benchmark
        tables=16
        run_time=300
        table_size=5000000
        # cpu intensive benchmark
        tables=10
        run_time=300
        table_size=1000000

    根据之前的计算,在该“cpu-io mixed benchmark”下,数据总量约18.4 GB,即,该压力测试则会成为一个读IO密集型的测试。各个云厂商在该模型下的性能表现如下图:

    Sysbench QPS 详细数据

    dataaliyunawsazurebaidugooglehuaweioracletencent
    43895281411561800148216867586034
    8452836712172328826353147341010777
    16536636372768572241955819704618142
    326178370428298380598210161747126922
    486508373728308789687713682764231615
    646719372728688982752015359806933636
    966901372628939204786215811829236293
    1287030389628859324846516050838839359
    1927127403129169675876116210857741586
    2567154406029189545869816279864841557
    38472124199292710147892316280867741212
    5127243440629361060290995400879740997

    Latency (Event) 详细数据

    如下表格分别为:平均延迟 和 95%延迟数据。单位为:毫秒/ms。

    dataaliyunawsazurebaidugooglehuaweioracletencent
    418.4925.5862.2940.0048.5942.7095.2111.93
    831.8039.2266.2843.7954.6545.7642.3113.36
    1653.6679.18104.0350.3268.6649.4840.8715.87
    3293.22155.48203.5968.7396.2856.6877.0421.39
    48132.74231.10305.2698.29125.6163.14113.0527.33
    64171.41309.04401.59128.24153.1575.00142.7234.24
    96250.32463.37597.12187.66219.72109.28208.3447.61
    128327.59590.76798.08247.10272.08143.51274.6658.53
    192484.68856.011184.42356.97394.31213.12402.7883.09
    256643.521132.871577.49482.24529.42282.89532.57110.86
    384957.261644.812357.54680.65773.74424.27795.02167.66
    5121270.072089.473132.14867.321011.221706.291045.78224.69
    dataaliyunawsazurebaidugooglehuaweioracletencent
    420.7429.1986.0058.9271.8357.87802.0515.00
    834.95132.4987.5673.1395.8162.1949.2117.32
    16153.02223.34150.2997.55161.5170.5595.8121.11
    32297.92314.45277.21139.85253.3586.00277.2128.67
    48350.33390.30434.83193.38303.3394.10450.7736.89
    64390.30467.30569.67235.74314.45123.28511.3345.79
    96475.79612.21877.61325.98356.70277.21569.6763.32
    128539.71759.881191.92411.96397.39356.70634.6678.60
    192694.451352.031771.29569.67539.71467.30719.92108.68
    256846.571973.382405.65787.74707.07549.52816.63144.97
    3841191.923095.383574.991050.761013.60657.931013.60219.36
    5121589.904055.234768.671327.911304.212082.911376.60292.60

    MySQL 参数对比表格

    dataaliyunawsazurebaidugooglehuaweioracletencent
    have_sslDISABLEDYESYESDISABLEDYESDISABLEDYESDISABLED
    innodb_buffer_pool_size9.75GB11GB12GB12GB11GB9GB17GB12GB
    innodb_doublewriteONOFFOFFONONONONON
    innodb_flush_log_at_trx_commit11111111
    innodb_flush_methodO_DIRECTO_DIRECTfsyncfsyncO_DIRECTO_DIRECTO_DIRECTO_DIRECT
    innodb_io_capacity200002002002000500012000125020000
    innodb_read_io_threads44NA84424
    innodb_write_io_threads44NA84444
    log_binONOFFONONONONONON
    performance_schemaOFFOFFONOFFONOFFONOFF
    rpl_semi_sync_master_enabledONNANAONNAONNAON
    rpl_semi_sync_master_timeout1000NANA10000NA10000NA10000
    sync_binlog11110001111
    thread_pool_size8NA4NA4NA164
    version8.0.368.0.438.0.42-azure8.0.32-4.0.0.58.0.41-google8.0.41-2509008.0.40-u8-cloud8.0.30-txsql
    instance_typemysql.x4.large.2cdb.m7i.xlargeGP_Standard_D4ads_v54db-custom-4-16384rds.mysql.x1.xlarge.4.haMySQL.44c
    storage_typecloud_essdio1NAcloud_enhaNACLOUDSSDNAEXCLUSIVE
    storage_size100100100100100100100100
    storage_iopsNA30003000NANANANANA
    cpu_capacity130.9125.474.972.855.9147121.3139.3

  • This content is password-protected. To view it, please enter the password below.