开发指南—常见问题—INDEX HINT

简介: PolarDB-X支持全局二级索引(Global Secondary Index,简称GSI) ,您可以通过INDEX HINT命令指定从GSI中获取查询结果。

使用限制

INDEX HINT仅对SELECT语句生效。

注意事项

PolarDB-X自定义HINT支持/*+TDDL:hint_command*//!+TDDL:hint_command*/两种格式。若使用/*+TDDL:hint_command*/格式时,在使用MySQL 官方命令行客户端执行带有PolarDB-X自定义HIN的SQL时,请在登录命令中加上-c参数,否则由于PolarDB-X自定义HINT是以MySQL注释形式使用的,该客户端会将注释语句删除后再发送到服务端执行,导致PolarDB-X自定义HINT失效,详情请参见MySQL官方客户端命令

语法

PolarDB-X支持如下两种语法INDEX HINT:

  • FORCE INDEX():语法与MySQL FORCE INDEX相同,若指定的索引不是GSI,则会将FORCE INDEX下发到MySQL上执行。
# FORCE INDEX()
tbl_name [[AS] alias] [index_hint]
index_hint:
    FORCE INDEX({index_name})
  • INDEX(): 通过表名和索引名组合或表在当前查询块中的别名和索引名组合来使用指定的GSI。
# INDEX()

/*+TDDL:
INDEX({table_name | table_alias}, {index_name})
*/
  • 说明上述语句在以下情况中不会生效:
    • 查询中不存在指定的表名或别名。
    • 指定的索引不是指定表上的GSI。

示例


CREATE TABLE t_order (
`id` bigint(11) NOT NULL AUTO_INCREMENT,
`order_id` varchar(20) DEFAULT NULL,
`buyer_id` varchar(20) DEFAULT NULL,
`seller_id` varchar(20) DEFAULT NULL,
`order_snapshot` longtext DEFAULT NULL,
`order_detail` longtext DEFAULT NULL,
PRIMARY KEY (`id`),
GLOBAL INDEX `g_i_seller`(`seller_id`) dbpartition by hash(`seller_id`),
UNIQUE GLOBAL INDEX `g_i_buyer` (`buyer_id`) COVERING(`seller_id`, `order_snapshot`)
dbpartition by hash(`buyer_id`) tbpartition by hash(`buyer_id`) tbpartitions 3
) ENGINE=InnoDB DEFAULT CHARSET=utf8 dbpartition by hash(`order_id`);
  • 在FROM子句中通过FORCE INDEX指定使用g_i_seller
SELECT a.*, b.order_id
FROM t_seller a
JOIN t_order b FORCE INDEX(g_i_seller) ON a.seller_id = b.seller_id
WHERE a.seller_nick="abc";
  • 通过INDEX加上表的别名指定使用g_i_buyer
/+TDDL:index(a, g_i_buyer)/ SELECT * FROM t_order a WHERE a.buyer_id = 123
相关文章
|
JavaScript 前端开发 UED
JS:如何获取浏览器窗口尺寸?
JS:如何获取浏览器窗口尺寸?
526 1
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
319 3
|
安全 Java
HashMap和Hashtable的区别
HashMap和Hashtable的区别
558 2
|
9月前
|
人工智能 自然语言处理 前端开发
用户说 | 零基础用通义灵码 AI 程序员开发个人笔记网站
通义灵码是一款基于通义大模型的智能编码辅助工具,支持自然语言生成代码、单元测试生成、代码注释生成等功能,兼容多种主流IDE和编程语言。对于零基础用户,只需通过自然语言描述需求,通义灵码即可自动生成代码,帮助快速开发个人笔记网站,极大简化开发流程,提升效率。
|
11月前
|
弹性计算 Ubuntu Linux
OS Copilot评测
本文介绍了OS Copilot的使用体验。
OS Copilot评测
|
安全 网络协议 网络安全
HTTPS:保护你的网站免受中间人攻击的关键技术
【6月更文挑战第13天】HTTPS是抵御中间人攻击的关键技术,通过数据加密、身份验证和完整性保护保障网络安全。它基于SSL/TLS协议加密通信,防止数据被窃取或篡改,并使用数字证书确认服务器身份,避免伪造。要确保HTTPS安全,需使用有效数字证书,启用强制HTTPS,定期更新维护并限制访问范围。
1073 3
|
10月前
|
前端开发
Css实现文本超出长度隐藏并用三个点结尾
Css实现文本超出长度隐藏并用三个点结尾
258 17
|
12月前
|
人工智能 算法 机器人
EMMA-X:新加坡科技设计大学推出具身多模态动作模型,使夹爪机器人具备空间推理和任务规划能力
EMMA-X是由新加坡科技设计大学推出的具身多模态动作模型,具备70亿参数,通过在链式思维推理数据上微调OpenVLA创建。该模型结合层次化的具身数据集,增强空间推理和任务规划能力。
453 3
EMMA-X:新加坡科技设计大学推出具身多模态动作模型,使夹爪机器人具备空间推理和任务规划能力
|
11月前
|
人工智能 自然语言处理 安全
《方舟编译器——开启人工智能编译优化新篇章》
鸿蒙系统的方舟编译器在人工智能领域展现出显著优势,通过多语言联合编译优化、静态编译提升效率和硬件适配指令集优化,大幅加快模型训练速度。在应用方面,它支持分布式协同、优化内存管理和增强安全性能,保障数据隐私。这些特性不仅提升了AI模型的训练和应用效率,还推动了人工智能技术的广泛应用和发展。
518 14
Threejs播放模型自带动画
这篇文章介绍了在Three.js中如何播放带有预设动作的模型动画,并特别提到了如何设置动画循环模式以实现一次性播放效果。
515 3
Threejs播放模型自带动画