# 表达式索引 (A)

+ 表达式索引是一种特殊的索引，能将索引建立于表达式上: `CREATE INDEX idx1 ON t1 ((lower(col1)));`
+ 可以通过查询系统变量得知哪些函数可以用于表达式索引: `tidb_allow_function_for_expression_index` 
```
mysql> select @@tidb_allow_function_for_expression_index;
+--------------------------------------------------------------+
| @@tidb_allow_function_for_expression_index                   |
+--------------------------------------------------------------+
| lower, md5, reverse, upper, vitess_hash                      |
+--------------------------------------------------------------+
```
-------------------------------------------------------------
表达式索引
- 表达式索引是一种特殊的索引，能将索引建立于表达式上。
- 在一些场景中，查询的条件往往是基于某个表达式进行过滤。
- 表达式索引中的表达式需要用 ( 和 ) 包围起来，否则会报语法错误。
```
CREATE INDEX idx1 ON t1 ((lower(col1)));
```
- 仅允许部分函数用于创建表达式索引，可以通过查询变量 tidb_allow_function_for_expression_index 得到
```
mysql> select @@tidb_allow_function_for_expression_index;
+--------------------------------------------+
| @@tidb_allow_function_for_expression_index |
+--------------------------------------------+
| lower, md5, reverse, upper, vitess_hash    |
+--------------------------------------------+
```