当前位置:   article > 正文

TIDB表达式索引

表达式索引

使用MySQL数据库,并有SQL优化经验的开发者都知道,在字段上使用函数,是无法走索引的,

最近使用TiDB数据库,发现有个概念叫做 “表达式索引

在一些场景中,查询的条件往往是基于某个表达式进行过滤。

在这些场景中,一般的索引不能生效,执行查询只能遍历整个表,导致查询性能较差。表达式索引是一种特殊的索引,能将索引建立于表达式上。在创建了表达式索引后,基于表达式的查询便可以使用上索引,极大提升查询的性能。

假设要基于 lower(col1) 这个表达式建立索引,示例的 SQL 语句如下:

CREATE INDEX idx1 ON t1 ((lower(col1)));
  • 1

或者等价的语句:

ALTER TABLE t1 ADD INDEX idx1((lower(col1)));
  • 1

注意:

表达式索引中的表达式需要用 ( 和 ) 包围起来,否则会报语法错误。

删除表达式索引与删除普通索引的方法一致:

DROP INDEX idx1 ON t1;
  • 1

参考链接:https://docs.pingcap.com/zh/tidb/stable/sql-statement-create-index

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/630236
推荐阅读
相关标签
  

闽ICP备14008679号