前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >53 倍性能提升!TiDB 全局索引如何优化分区表查询?

53 倍性能提升!TiDB 全局索引如何优化分区表查询?

原创
作者头像
PingCAP
修改于 2025-03-27 03:01:21
修改于 2025-03-27 03:01:21
1880
举报

导读

TiDB 全局索引在分区表中提供了一种优化查询性能的新方式。与本地索引不同,全局索引通过打破索引与分区的一对一映射关系,提升了跨分区查询的效率。本文将详细介绍 TiDB 全局索引的工作原理、发展历程以及创建方法,并通过性能测试和最佳实践,帮助用户更好地理解和应用全局索引,提高数据库的查询性能和整体效率。

什么是 TiDB 全局索引

在 TiDB 中,全局索引是一种定义在分区表上的索引类型,它允许索引分区与表分区之间建立一对多的映射关系,即一个索引分区可以对应多个表分区。这与 TiDB 早期版本中的本地索引(Local Index)不同,本地索引的索引分区与表分区之间是一对一的映射关系,即一个分区对应一个局部的索引块。

全局索引能覆盖整个表的数据,使得主键和唯一键在不包含分区键的情况下仍能保持全局唯一性。此外,全局索引可以在一次操作中访问多个分区的索引数据,而无需对每个分区的本地索引逐一查找,显著提升了针对非分区键的查询性能。

下图简单展示了本地索引和全局索引的区别

本地索引和全局索引的区别
本地索引和全局索引的区别

TiDB 全局索引的发展历程

  • v7.6.0 版本之前 :TiDB 仅支持分区表的本地索引。这意味着,对于分区表上的唯一键,必须包含表分区表达式中的所有列。如果查询条件中没有使用分区键,那么查询将不得不扫描所有分区,这会导致查询性能下降。
  • v7.6.0 版本 :引入了系统变量 tidb_enable_global_index ,用于开启全局索引功能。然而,当时该功能仍在开发中,不推荐用户启用。
  • v8.3.0 版本 :全局索引功能作为实验性特性发布。用户可以通过在创建索引时显式使用 GLOBAL 关键字来创建全局索引。
  • v8.4.0 版本 :全局索引功能正式成为一般可用(GA)特性。用户可以直接使用 GLOBAL 关键字创建全局索引,而无需再设置系统变量 tidb_enable_global_index 。从这个版本开始,该系统变量被弃用,并且始终为 ON 。
  • v8.5.0 版本 :全局索引功能支持了包含分区表达式中的所有列。
  • v9.0.0 版本 :全局索引功能支持了非唯一索引的情况。在分区表中,除聚簇索引外都可以被创建为全局索引。

TiDB 全局索引的语法

在 TiDB 中,创建全局索引(Global Index)时,可以在 CREATE INDEX 或 ALTER TABLE 语句中使用 GLOBAL 关键字,或在建表时通过 GLOBAL 关键字或 /Tundefined GLOBAL / 注释指定。

创建全局索引的语法:

代码语言:Plaintext
AI代码解释
复制
CREATE [UNIQUE] INDEX index_name ON table_name (column_list) [GLOBAL];
ALTER TABLE table_name ADD [UNIQUE] INDEX index_name (column_list) [GLOBAL];

示例:

  1. 创建全局唯一索引:
代码语言:Plaintext
AI代码解释
复制
CREATE UNIQUE INDEX idx_global ON employees (email) GLOBAL;

此语句在 employees 表的 email 列上创建一个全局唯一索引,确保每个电子邮件地址在整个表中唯一。

  1. 添加全局索引:
代码语言:Plaintext
AI代码解释
复制
ALTER TABLE orders ADD INDEX idx_global_order_date (order_date) GLOBAL;

此语句向 orders 表添加一个名为 idx_global_order_date 的全局索引,索引列为 order_date 。

  1. 在建表时创建全局索引:
代码语言:Plaintext
AI代码解释
复制
CREATE TABLE `sbtest` (
  `id` int NOT NULL,
  `k` int NOT NULL DEFAULT '0',
  `c` char NOT NULL DEFAULT '',
  KEY `idx1` (`k`) GLOBAL,
  KEY `idx2` (`k`) /*T![global_index] GLOBAL */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
PARTITION BY HASH (`id`) PARTITIONS 5;

此语句在创建 sbtest 表时同时创建了两个名为 idx1 和 idx2 的全局索引,两个索引的索引列都为 k 。

TiDB 全局索引的优势

提升查询性能

全局索引能够有效提高检索非分区列的效率。当查询涉及非分区列时,全局索引可以快速定位相关数据,避免了对所有分区的全表扫描,可以显著降低 cop task 的数量,这对于分区数量庞大的场景尤为有效 。

经过测试,在分区数量为 100 的情况下,sysbench select_random_points 场景得到了 53 倍 的性能提升。

增强应用灵活性

全局索引的引入,消除了分区表上唯一键必须包含所有分区列的限制。这使得用户在设计索引时更加灵活,可以根据实际的查询需求和业务逻辑来创建索引,而不再受限于表的分区方案。这种灵活性有助于更好地优化查询性能,满足多样化的业务需求。

减少应用修改工作量

数据迁移和应用修改过程中,全局索引可以减少对应用的修改工作量。如果没有全局索引,在迁移数据或修改应用时,可能需要调整分区方案或重写查询语句以适应索引的限制。有了全局索引之后,这些修改可以被避免,从而降低了开发和维护成本。

如在将 Oracle 数据库中的某张表迁移到 TiDB 时,因为 Oracle 支持全局索引,可能在某些表上存在一些不包含分区列的唯一索引,在迁移过程需要对表结构进行调整,以适应 TiDB 的分区表限制。然而,随着 TiDB 对全局索引的支持,用户只需简单地修改索引定义,将其设置为全局索引,即可与 Oracle 保持一致,从而显著降低迁移成本。

TiDB 全局索引的工作原理

基本思想

在 TiDB 的分区表中,本地索引的键值前缀是分区表的 ID 而全局索引的前缀是表的 ID。这样的改动确保了全局索引的数据在 TiKV 上分布是连续的,降低了查询索引时 RPC 的数量。

代码语言:Plaintext
AI代码解释
复制
CREATE TABLE `sbtest` (
  `id` int(11) NOT NULL,
  `k` int(11) NOT NULL DEFAULT '0',
  `c` char(120) NOT NULL DEFAULT '',
  KEY idx(k),
  KEY global_idx(k) GLOBAL
) partition by hash(id) partitions 5;

以上面的表结构为例, idx 为普通索引, global_idx 为全局索引。索引 idx 的数据会分布在 5 个不同的 ranges 中,如 PartitionID1_i_xxx , PartitionID2_i_xxx 等,而索引 global_idx 的数据则会集中在一个 range ( TableID_i_xxx ) 内。

这样当我们进行 k 相关的查询时,如 select * from sbtest where k > 1 ,通过索引 idx 会构造 5 个不同的 ranges,而通过全局索引 global_idx 则只会构造 1 个 range,每个 range 在 TiDB 中对应一个或多个 RPC 请求,这样使用全局索引可以降低数倍的 RPC 请求数,从而提升查询索引的性能。

下图更加直观地展示了在使用 idx 和 global_idx 两个不同索引执行 select * from sbtest where k > 1 查询语句在 RPC 请求和数据流转过程中的差异。

查询语句在 RPC 请求和数据流转过程中的差异
查询语句在 RPC 请求和数据流转过程中的差异

编码方式

在 TiDB 中,索引项被编码为键值对。对于分区表,每个分区在 TiKV 层被视为一个独立的物理表,拥有自己的 partitionID 。因此,分区表的索引项也被编码为:

代码语言:Plaintext
AI代码解释
复制
唯一键
Key:
- PartitionID_indexID_ColumnValues

Value:
- IntHandle
 - TailLen_IntHandle

- CommonHandle
 - TailLen_IndexVersion_CommonHandle

非唯一键
Key:
- PartitionID_indexID_ColumnValues_Handle

Value:
- IntHandle
 - TailLen_Padding

- CommonHandle
 - TailLen_IndexVersion

在全局索引中,索引项的编码方式有所不同。 为了使全局索引的键布局与当前索引键编码保持兼容,新的索引编码布局为:

代码语言:Plaintext
AI代码解释
复制
唯一键
Key:
- TableID_indexID_ColumnValues

Value:
- IntHandle
 - TailLen_PartitionID_IntHandle

- CommonHandle
 - TailLen_IndexVersion_CommonHandle_PartitionID

非唯一键
Key:
- TableID_indexID_ColumnValues_Handle

Value:
- IntHandle
 - TailLen_PartitionID

- CommonHandle
 - TailLen_IndexVersion_PartitionID

这种编码方式使得全局索引的键以 TableID 开头,而 PartitionID 被放置在 Value 中。这样设计的优点是,它与现有的索引键编码方式兼容,但同时也带来了一些挑战,例如在执行 DROP PARTITION, TRUNCATE PARTITION 等 DDL 操作时,由于索引项不连续,需要进行额外的处理。

TiDB 全局索引的限制与注意事项

影响部分 DDL 性能

当分区表中存在全局索引时,执行诸如 DROP PARTITION(删除分区)、TRUNCATE PARTITION(清空分区)、REORG PARTITION(重组分区)等部分 DDL 操作时,需要同步更新全局索引的值,这会显著增加 DDL 操作的执行时间。

在 v8.5.0 默认参数下,测试显示对包含全局索引的 sysbench 表执行 DROP PARTITION 或 TRUNCATE PARTITION 操作时, oltp_read_write 负载的性能会下降 15% 至 20%。

聚簇索引( Clustered Index )

聚簇索引不能成为全局索引,是因为如果聚簇索引是全局索引,则表将不再分区。这是因为聚簇索引的键是分区级别的行数据的键,但全局索引是表级别的,这就造成了冲突。如果需要将主键设置为全局索引,则需要显式设置该主键为非聚簇索引,如 PRIMARY KEY(col1, col2) NONCLUSTERED GLOBAL 。

性能测试数据

  • select_random_points in sysbench

示例表结构

代码语言:Plaintext
AI代码解释
复制
CREATE TABLE `sbtest` (
  `id` int(11) NOT NULL,
  `k` int(11) NOT NULL DEFAULT '0',
  `c` char(120) NOT NULL DEFAULT '',
  `pad` char(60) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */,
  KEY `k_1` (`k`)
  /* Key `k_1` (`k`, `c`) GLOBAL */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
/* Partition by hash(`id`) partitions 100 */
/* Partition by range(`id`) xxxx */

负载 SQL

代码语言:Plaintext
AI代码解释
复制
SELECT id, k, c, pad
FROM sbtest1
WHERE k IN (xx, xx, xx)
性能测试数据
性能测试数据
  • 通过上述测试可以看出,在高并发环境下,全局索引能够显著提升分区表查询性能,提升幅度可达 50 倍。同时,全局索引还能够显著降低资源(RU)消耗。随着分区数量的增加,这种性能提升的效果将愈加明显。

最佳实践

全局索引和本地索引

全局索引适用场景:

  • 数据归档不频繁: 例如,医疗行业的部分业务数据需要保存 30 年,通常按月分区,然后一次性创建 360 个分区,且很少进行 DROP 或 TRUNCATE 操作。在这种情况下,使用全局索引更为合适,因为它能提供跨分区的一致性和查询性能。
  • 查询需要跨分区的数据: 当查询需要访问多个分区的数据时,全局索引可以避免跨分区扫描,提高查询效率。

本地索引适用场景:

  • 数据归档需求: 如果数据归档操作很频繁,且主要查询集中在单个分区内,本地索引可以提供更好的性能。
  • 需要使用分区交换功能: 在银行等行业,可能会将处理后的数据先写入普通表,确认无误后再交换到分区表,以减少对分区表性能的影响。此时,本地索引更为适用,因为在使用了全局索引之后,分区表将不再支持分区交换功能。

全局索引和聚簇索引

由于聚簇索引和全局索引的原理限制,一个索引不能同时作为聚簇索引和全局索引。然而,这两种索引在不同查询场景中能提供不同的性能优化。在遇到需要同时兼顾两者的需求时,我们可以将分区列添加到聚簇索引中,同时创建一个不包含分区列的全局索引。

假设我们有如下表结构:

代码语言:Plaintext
AI代码解释
复制
CREATE TABLE `t` (
  `id` int DEFAULT NULL,
  `ts` timestamp NULL DEFAULT NULL,
  `data` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
PARTITION BY RANGE (UNIX_TIMESTAMP(`ts`))
(PARTITION `p0` VALUES LESS THAN (1735660800)
 PARTITION `p1` VALUES LESS THAN (1738339200)
 ...)

在上面的 t 表中, id 列的值是唯一的。为了优化点查和范围查询的性能,我们可以选择在建表语句中定义一个聚簇索引 PRIMARY KEY(id, ts) 和一个不包含分区列的全局索引 UNIQUE KEY id(id) 。这样在进行基于 id 的点查询时,会走全局索引 id ,选择 PointGet 的执行计划;而在进行范围查询时,聚簇索引则会被选中,因为聚簇索引相比全局索引少了一次回表操作,从而提升查询效率。

修改后的表结构如下所示:

代码语言:Plaintext
AI代码解释
复制
CREATE TABLE `t` (
  `id` int NOT NULL,
  `ts` timestamp NOT NULL,
  `data` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`, `ts`) /*T![clustered_index] CLUSTERED */,
  UNIQUE KEY `id` (`id`) /*T![global_index] GLOBAL */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
PARTITION BY RANGE (UNIX_TIMESTAMP(`ts`))
(PARTITION `p0` VALUES LESS THAN (1735660800),
 PARTITION `p1` VALUES LESS THAN (1738339200) ...)

通过这种方式,我们既能优化基于 id 的点查询,又能提升范围查询的性能,同时确保表的分区列在基于时间戳的查询中能得到有效的利用。

总结

TiDB 全局索引是 TiDB 在分区表索引方面的重要特性,它通过允许索引分区与表分区之间提供一对多的映射关系,提供了更灵活的索引设计和更高效的查询性能。全局索引的引入,不仅提升了 TiDB 分区表在处理复杂查询和大数据量场景下的能力,还为用户在数据库设计和优化方面提供了更多的选择。

然而,全局索引也带来了一些挑战,如维护成本的增加。在使用全局索引时,需要根据具体的业务需求和数据特点,合理设计索引,权衡查询性能和数据修改性能,以达到最佳的数据库性能。

总之,TiDB 全局索引是一个强大且灵活的特性,能够帮助用户更好地优化数据库性能,满足多样化的业务需求。在实际应用中,合理使用全局索引,可以显著提升查询性能,提高数据库的整体效率。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
腾讯TMQ在线沙龙回顾|测试左移实践
测试左移实践 活动时间:2017年6月28日 QQ群视频交流 活动主题:TMQ在线沙龙第二十三期分享 本次分享的主题是:测试左移实践 共有214位测试小伙伴报名参加活动,在线观看视频人数 54人! 想知道活动分享了啥吗, 请往下看吧! 活动嘉宾 嘉宾简介 陈诚,腾讯手机管家专项测试工程师,目前主要负责手机管家的测试分析、接口测试、工具建设等。在安卓客户端、H5等领域有丰富的测试经验。 分享主题 1、测试左移的概念 2、测试左移方案:testng自动化方案和本地Mock方案 3、测试左移案例:手机管
腾讯移动品质中心TMQ
2018/02/08
8190
腾讯TMQ在线沙龙回顾|测试左移实践
腾讯TMQ在线沙龙回顾|线性回归&逻辑回归
线性回归&逻辑回归 活动时间:2017年12月27日QQ群视频分享 活动介绍:TMQ在线沙龙第三十七期分享 本次分享的主题:线性回归&逻辑回归。 共有73位测试小伙伴报名参加活动。 想知道活动分享了啥吗? 请往下看吧! 嘉宾 马蕾:腾讯地图专项测试工程师。目前主要负责地图导航业务效果评测,工具开发等。在各类效果评测和专项测试上有丰富的经验。 分享主题 1、线性回归和逻辑回归介绍 2、模型训练的一般过程和优化思路 3、测试工作中应用线性回归案例分享 4、测试工作中应用逻辑回归案例分享 问答环节 问:T
腾讯移动品质中心TMQ
2018/02/08
7130
腾讯TMQ在线沙龙回顾|线性回归&逻辑回归
推荐系统相关效果评测指标总结
一、背景 在互联网信息量爆炸式增长的今天,我们已然从信息匮乏时代走入信息过载的时代。在这样的时代背景下,用户在精准内容消费方面的需求也随之提高,由此浏览器作为移动流量的巨大入口,其角色也自然发生了变化——《艾媒:2017年上半年中国手机浏览器市场研究报告》中提到“目前中国手机浏览器已发展至内容聚合及服务平台阶段,成为移动互联网超级入口及内容聚合平台的手机浏览器产品能满足用户多样化功能需求和提供丰富多样的内容服务。”移动端浏览器的业务重心已经逐渐转向内容消费。而发展个性化推荐(无论内容来源为全局热点或者是个
腾讯移动品质中心TMQ
2018/12/25
9.4K0
推荐系统相关效果评测指标总结
【精品投稿】推荐系统评测心得
在介绍推荐算法评测之前,我先简单说下推荐系统,这里我以商品为例,简单描述下推流程,让大家更明白一些,一般推荐主要包含以下步骤: 召回->打分排序->透出
用户5521279
2019/06/02
1.3K0
腾讯TMQ在线沙龙|Code Review也有潜规则
Code Review也有潜规则 活动时间:2017年3月30日 QQ群视频交流 活动介绍:TMQ在线沙龙第十八期分享 本次分享的主题是:Code Review也有潜规则 共有114位测试小伙伴报名参加活动,在线观看视频人数 47人! 想知道活动分享了啥吗, 往下看吧! 活动嘉宾 嘉宾简介 张艳,腾讯高级测试工程师,在腾讯电脑管家测试团队负管家PC办公相关项目的测试工作,包括桌面搜索、跨度传输、健康小助手等项目的CR、功能、性能的测试工作,在CR方面有一定的实践经验。 分享主题 1、什么是Code
腾讯移动品质中心TMQ
2018/02/08
1.3K0
腾讯TMQ在线沙龙|Code Review也有潜规则
腾讯TMQ在线沙龙|APP推荐质量保障工作
报名啦!!! 零距离对话腾讯测试专家,获取更多测试经验。 TMQ沙龙活动第四十二期 特邀腾讯高级测试工程师——马国俊来给大家分享APP推荐质量保障工作。本次分享,会结合嘉宾的实践经验,从APP增量更新
腾讯移动品质中心TMQ
2018/06/08
1.7K0
腾讯TMQ在线沙龙|Android应用Dex分包之旅
Android应用Dex分包之旅 活动时间:2016年1月12日 QQ群视频交流 活动介绍:TMQ在线沙龙第十六期分享 本次分享的主题是Android应用Dex分包之旅。 共有42位测试小伙伴报名参加活动,在线观看视频人数18人~想知道活动分享了啥吗?往下看吧! 活动嘉宾 嘉宾简介 李金涛,腾讯高级测试工程师,负责过腾讯QQ浏览器专项测试及优化,目前主要负责腾讯应用宝专项测试及优化。有多年的后台开发和性能优化经验以及前端专项评测和优化经验。 分享主题 什么是Dex 为什么要分Dex Dex分包
腾讯移动品质中心TMQ
2018/02/08
1.1K0
腾讯TMQ在线沙龙|Android应用Dex分包之旅
腾讯TMQ在线沙龙|精准测试介绍
精准测试介绍 活动时间 : 2016年8月25日 QQ群视频交流 活动介绍 :TMQ在线沙龙第七期分享 本次分享的主题是介绍精准测试相关的知识。 共有123位测试小伙伴报名参加活动,在线观看视频人数55人~想知道活动分享了啥吗?往下看吧! 活动嘉宾 嘉宾简介 赵丽娜,腾讯高级测试工程师,负责腾讯地图开放平台和后台的测试工作。 有多年后台开发和项目管理经验,对SDK测试、接口测试和性能专项测试有一定了解。 分享主题 什么是精准测试 为什么要用精准测试 精准测试的理论基础 精准测试在行业中的现
腾讯移动品质中心TMQ
2018/02/06
2.1K0
腾讯TMQ在线沙龙|精准测试介绍
腾讯TMQ在线沙龙回顾|技术债
技术债 活动时间:2017年11月23日 QQ视频分享 活动介绍:TMQ在线沙龙第三十四期分享 本次分享的主题是:技术债 有72位测试小伙伴报名参加活动! 想知道活动分享了啥吗 请往下看吧! 嘉宾 2011年加入腾讯,现为大屏浏览器测试组副组长。曾在业务测试组以及专项测试组负责过性能测试,测试工具&平台开发以及负责手机游戏的测试工作。 分享主题 1、代码坏味道 2、理解技术债 3、技术债的天敌 问答环节 1、对于业务比较重的项目,业务流程变动频繁、开发周期短,如何去有效管理代码质量? 答:如果业务
腾讯移动品质中心TMQ
2018/02/08
9320
腾讯TMQ在线沙龙回顾|技术债
腾讯TMQ在线沙龙回顾|大数据
大数据 活动时间:2017年12月20日 斗鱼直播分享 活动介绍:TMQ在线沙龙第三十六期分享 本次分享的主题:大数据。 共有65位测试小伙伴报名参加活动。 想知道活动分享了啥吗? 请往下看吧! 嘉宾 刘楚蓉:腾讯高级测试工程师。过去主要负责移动端产品质量体系建设、自动化工具开发、大数据业务测试等。在移动端质量体系建设及大数据测试方面有丰富的经验。 分享主题 大数据业务介绍 研发效率提升思路 实例分享 问答环节 1、这个平台是使用的什么工具?自己开发的吗?和大数据有什么关系呢? 答:平台开发使用的是
腾讯移动品质中心TMQ
2018/02/08
1.1K0
腾讯TMQ在线沙龙回顾|大数据
腾讯TMQ在线沙龙回顾|后台测试案例分享
后台测试案例分享 活动时间:2017年9月28日 qq视频分享 活动介绍:TMQ在线沙龙第三十一期分享 本次分享的主题是:后台测试案例分享 共有66位测试小伙伴报名参加活动,在线观看视频人数 27人! 想知道活动分享了啥吗, 请往下看吧! 嘉宾 赵丽娜,腾讯专项测试工程师,有多年电信开发经验,目前负责腾讯地图基础业务包括后台服务、引擎及API级产品的质量保证工作。在底层服务开发和测试架构设计方面有比较丰富的经验。 分享主题 1、腾讯地图后台测试持续集成解决方案 2、腾讯地图后台测试体系 3、开发自测在
腾讯移动品质中心TMQ
2018/02/08
1.3K0
腾讯TMQ在线沙龙回顾|后台测试案例分享
万字长文带你了解推荐系统全貌!
如果说互联网的目标就是连接一切,那么推荐系统的作用就是建立更加有效率的连接,推荐系统可以更有效率的连接用户与内容和服务,节约了大量的时间和成本。
Datawhale
2020/10/27
7660
万字长文带你了解推荐系统全貌!
腾讯TMQ在线沙龙回顾|测试过程管理
测试过程管理 活动时间:2017年10月26日 qq视频分享 活动介绍:TMQ在线沙龙第三十二期分享 本次分享的主题是:测试过程管理 共有83位测试小伙伴报名参加活动,在线观看视频人数 36人! 想知道活动分享了啥吗, 请往下看吧! 嘉宾 程绪超,腾讯高级系统测试工程师。负责过小Q书桌、电脑管家的测试。目前主要负责电脑管家-游戏加速的系统测试工作。在测试建模和测试过程管理方面有丰富的经验。 分享主题 1、测试过程管理经常遇到的问题 2、如何培养整个团队的质量意识 3、如何根据需求类别制定通用测试策略
腾讯移动品质中心TMQ
2018/02/08
1K0
腾讯TMQ在线沙龙回顾|测试过程管理
腾讯TMQ在线沙龙回顾|电量测试
电量测试 活动时间:2017年9月19日 斗鱼直播分享 活动介绍:TMQ在线沙龙第三十期分享 本次分享的主题是:电量测试 在线平均人气 70人! 想知道活动分享了啥吗, 请往下看吧! 嘉宾 张媛,腾讯专项测试工程师,负责过社交类、安全类、浏览服务类产品专项测试。目前主要负责手机QQ浏览器自动化及性能相关测试。在移动客户端的性能测试及工具开发方面有丰富经验。 分享主题 1、业界通用的电量测试方法 2、我们需要的电量测试 3、电量测试自动化方案 4、经验总结 问答环节 1、PC端不通过usb的话,怎么发
腾讯移动品质中心TMQ
2018/02/08
2.3K0
腾讯TMQ在线沙龙回顾|电量测试
腾讯TMQ在线沙龙回顾|测试建模
测试建模 活动时间:2017年4月27日 QQ群视频交流 活动介绍: TMQ在线沙龙第二十期分享 本次分享的主题是:测试建模 共有72位测试小伙伴报名参加活动,在线观看视频人数 34人! 想知道活动分享了些啥吗, 请往下看吧! 活动嘉宾 嘉宾简介 黎懋靓,腾讯测试工程师,曾负责腾讯地图IOS和车载音乐的测试,目前主要负责,车载导航相关业务测试。在移动客户端测试方面有比较丰富的经验。 分享主题 1.测试建模是什么 2.为什么要测试建模 3.怎么开展测试建模 问答环节 1、ACC横坐标一般怎么定义?
腾讯移动品质中心TMQ
2018/02/08
8990
腾讯TMQ在线沙龙回顾|测试建模
聊一聊转行推荐的问题
每天给你送来NLP技术干货! ---- “搜推广”是企业里离钱最近的岗位,在CV/NLP越来越卷的当下,很多朋友起了转推荐算法的念头。我就经常收到此类私信和留言。今天这篇文章打算跟大家聊一聊转行推荐算法的问题。 从前途角度考虑,我是非常建议的。 1 大厂必备核心——推荐系统 从商业角度来讲,互联网主要起到平台作用,构建多方沟通桥梁,例如淘宝对应卖家和卖家,头条是信息产出方和读者,除了要满足用户本身的需求,还要考虑到商家的利益。 平台巩固流量,才能进一步的转化,达到盈利。这时候,推荐系统可能是一整个系统的核
zenRRan
2022/07/27
4000
聊一聊转行推荐的问题
达观数据:推荐系统评测标准制定经验分享
推荐系统是互联网发展至今最常见也重要的技术之一。如今各类APP、网站、小程序等所有提供内容的地方,背后都有推荐系统在发挥作用。
达观数据
2020/04/01
9410
推荐系统:石器与青铜时代
准确地说这个时代,不能称之为推荐系统的时代,这一个时代未能给每个用户构建属于他的推荐结果,没有很好地解决个性化长尾问题,所以这个可以叫前推荐时代。
石晓文
2019/07/24
5860
腾讯TMQ在线沙龙回顾|IOS测试利器—idb
IOS测试利器—idb 活动时间:2017年5月17日 QQ群视频交流 活动介绍:TMQ在线沙龙第二十一期分享 本次分享的主题是:IOS测试利器—idb 共有101位测试小伙伴报名参加活动,在线观看视频人数 27人! 想知道活动分享了啥吗, 请往下看吧! 活动嘉宾 嘉宾简介 樊林,腾讯专项测试工程师,负责过手机QQ、应用宝专项测试,目前主要负责应用宝创新项目测试以及启动速度专项优化。在移动客户端的测试方面以及相应工具开发方面有丰富的经验。 分享主题 1.idb是什么 2.为什么要做idb 3.id
腾讯移动品质中心TMQ
2018/02/08
1.7K0
腾讯TMQ在线沙龙回顾|IOS测试利器—idb
腾讯TMQ在线沙龙回顾|Android App质量监控及工具应用实战
活动介绍 TMQ第四十二期在线沙龙分享活动圆满结束啦! 本次分享的主题:Android App质量监控及工具应用实战 共有238位测试小伙伴报名参加活动。 想知道活动分享了啥吗? 请往下看吧! 嘉宾
腾讯移动品质中心TMQ
2018/06/08
2.9K0
推荐阅读
相关推荐
腾讯TMQ在线沙龙回顾|测试左移实践
更多 >
LV.1
这个人很懒,什么都没有留下~
目录
  • 导读
  • 什么是 TiDB 全局索引
  • TiDB 全局索引的发展历程
  • TiDB 全局索引的语法
  • TiDB 全局索引的优势
    • 提升查询性能
    • 增强应用灵活性
    • 减少应用修改工作量
  • TiDB 全局索引的工作原理
    • 基本思想
    • 编码方式
  • TiDB 全局索引的限制与注意事项
    • 影响部分 DDL 性能
    • 聚簇索引( Clustered Index )
  • 性能测试数据
  • 最佳实践
    • 全局索引和本地索引
    • 全局索引和聚簇索引
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档