mysql函数索引_MySQL 函数索引 (Functional indexes)

mysql函数索引_MySQL 函数索引 (Functional indexes)函数索引示例:CREATETABLEt1(col1INT,col2INT,INDEXfunc_index((ABS(col1))));CREATEINDEXidx1ONt1((col1+col2));CREATEINDEXidx2ONt1((col1+col2),(col1-col2),col1);ALTERTABLEt1ADDINDE…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

函数索引示例:

CREATE TABLE t1 (col1 INT, col2 INT, INDEX func_index ((ABS(col1))));

CREATE INDEX idx1 ON t1 ((col1 + col2));

CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 – col2), col1);

ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);

涉及多个字段的索引,可以混合使用函数索引和非函数索引,如下:

alter table sbtest1 add index idx_name_age(name, (age+1));

函数索引定义时,可以使用 DESC, ASC 指定其排序方式,如下:

alter table sbtest1 add index idx_1(name desc, (age*10) asc );

函数索引的限制条件:

函数索引实际上是作为一个隐藏的虚拟列实现的,因此其很多限制与虚拟列相同,如下:

函数索引的字段数量受到表的字段总数限制

函数索引能够使用的函数与虚拟列上能够使用的函数相同

子查询,参数,变量,存储过程,用户定义的函数不允许在函数索引上使用

虚拟列本身不需要存储,函数索引和其他索引一样需要占用存储空间

函数索引可以使用 UNIQUE  标识,但是主键不能使用函数索引,主键要求被存储,但是函数索引由于其使用的虚拟列不能被存储,因此主键不能使用函数索引

如果表中没有主键,那么 InnoDB 将会使其非空的唯一索引作为主键,因此该唯一索引不能定义为函数索引

函数索引不允许在外键中使用

空间索引和全文索引不能定义为函数索引

对于非函数的索引,如果创建相同的索引,将会有一个告警信息,而函数索引则不会

如果一个字段被用于函数索引,那么删除该字段前,需要先删除该函数索引,否则删除该字段会报错

非函数索引支持对字段前缀进行索引,函数索引不支持前缀。可以使用 SUBSTRING() 或者 CAST() 。但是查询 SQL 中的参数必须与函数索引定义时的参数完全相同才能使用该索引,如下示例:

CREATE TABLE tbl (

col1 LONGTEXT,

INDEX idx1 ((SUBSTRING(col1, 1, 10)))

);

SELECT * FROM tbl WHERE SUBSTRING(col1, 1, 9) = ‘123456789’;

SELECT * FROM tbl WHERE SUBSTRING(col1, 1, 10) = ‘1234567890’;

SUBSTRING(col1, 1, 9) 无法使用函数索引,SUBSTRING(col1, 1, 10) 可以使用函数索引。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234672.html原文链接:https://javaforall.net

(0)
上一篇 2025年5月28日 下午8:15
下一篇 2025年5月28日 下午8:43


相关推荐

  • OPA-Gatekeeper使用

    OPA-Gatekeeper使用文档地址 https open policy agent github io gatekeeper website docs install 安装赋予集群管理员权限 kubectlcreat admin binding clusterrolec admin useradmin 安装 opa gatekeeper 版本需要与 k8s 版本匹配 目前测试 1 15 版本使用 3 4 1 19 版本使用

    2026年3月17日
    2
  • 协同过滤推荐算法(一)原理与实现

    协同过滤推荐算法(一)原理与实现一、协同过滤算法原理协同过滤推荐算法是诞生最早,并且较为著名的推荐算法。主要的功能是预测和推荐。算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法(user-basedcollaboratIvefiltering),和基于物品的协同过滤算法(item-basedcollaborati…

    2022年6月24日
    32
  • 图像的邻接性、连通性、区域和边界

    图像的邻接性、连通性、区域和边界一 邻域邻域是像素和空间之间的关系 二 邻接邻接是两个元素之间的关系 如下图所示 q 和 p 是 4 邻接的 如下图所示 q 和 p 是对角邻接的 如下图所示 p 和周围的八个数都是邻接的 显然 若 p 和 q 是 8 邻接 则他们不一定是 4 邻接 若 p 和 q 是 4 邻接 他们一定是 8 邻接 m 邻接 说到 m 邻接 不得不引入灰度值集合 V 灰度值集合 V 指的是 0 255 的任意一个子集 对于 m 邻接 书上的概念是这么说

    2026年3月18日
    2
  • 你也可以手写OpenClaw

    你也可以手写OpenClaw

    2026年3月13日
    2
  • U盘 未知USB设备 设定地址失败 由于该设备有问题Windows 已将其停止(代码 43) 终极解决方案(做过系统装机盘而无法解决的必看)

    U盘 未知USB设备 设定地址失败 由于该设备有问题Windows 已将其停止(代码 43) 终极解决方案(做过系统装机盘而无法解决的必看)U盘由于该设备有问题Windows已将其停止(代码43)终极解决方案我们在使用U盘的时候偶尔会碰到下列情况一般是因为传输数据的过程中,死机或未响应直接断点或拔掉设备导致的,U盘再次插上之后出现设定地址失败。无法再次读取设备的数据。解决方案:首先请确认出现该情况不是因为你摔了U盘或接口处产生断裂这种物理损伤导致的!!!首先请确认出现该情况不是因为你摔了U盘或接口处产生断裂这种物理损…

    2022年6月28日
    330
  • Pycharm 更换地址源

    Pycharm 更换地址源清华 https pypi tuna tsinghua edu cn simple 豆瓣 http pypi douban com simple 阿里 http mirrors aliyun com pypi simple

    2026年3月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号