首批通过分布式安全可靠测评,为关键业务系统打造
函数索引支持的系统函数列表
更新时间:2026-06-29 13:04:41
本节主要列出了可以或满足条件可以用于函数索引的系统函数。
对参数类型无要求的系统函数
下表中函数的表达式可以用于函数索引:
| TRIM | ORD | IS_IPV6 | POINT |
| SUBSTR | LTRIM | IS_IPV4_MAPPED | LINESTRING |
| SUBSTRING_INDEX | RTRIM | IS_IPV4_COMPAT | MULTIPOINT |
| MD5 | LPAD | CRC32 | MULTILINESTRING |
| IP2INT | BIT_COUNT | TO_BASE64 | POLYGON |
| INT2IP | FIND_IN_SET | FROM_BASE64 | MULTIPOLYGON |
| INSERT | LEFT | SHA | GEOMCOLLECTION |
| UNHEX | MAKE_SET | SHA2 | ST_ASTEXT |
| TIMEDIFF | SECOND | UNCOMPRESS | ST_BUFFER_STRATEGY |
| PERIOD_DIFF | MINUTE | UNCOMPRESSED_LENGTH | ST_BUFFER |
| STR_TO_DATE | MICROSECOND | UUID_TO_BIN | ST_ASWKT |
| FROM_DAYS | TO_SECONDS | IS_UUID | ST_DISTANCE |
| FLOOR | TIME_TO_SEC | UUID_TO_BIN | ST_ISVALID |
| CEIL | SEC_TO_TIME | FORMAT_BYTES | ST_ASWKB |
| REPEAT | INTERVAL | FORMAT_PICO_TIME | ST_ASBINARY |
| REPLACE | SQRT | DECODE | ST_DISTANCE_SPHERE |
| LOCATE | LOG2 | ENCODE | ST_WITHIN |
| REVERSE | LOG10 | LN | ST_CONTAINS |
| RIGHT | TRUNCATE | LOG | ST_AREA |
| RPAD | EXP | ASIN | ST_INTERSECTS |
| CHAR_LENGTH | HOUR | ACOS | ST_X |
| IFNULL | MID | ATAN | ST_Y |
| CONCAT_WS | RADIANS | ATAN2 | ST_LATITUDE |
| FIELD | MAKETIME | COS | POWER |
| NULLIF | FORMAT | TAN | LENGTHC |
| CHAR_LENGTH | COT | SIN | COMPRESS |
| POSITION | BIT_LENGTH | MAKEDATE | INSTRC |
| ELT | PI | PERIOD_ADD | CHAR |
| STRCMP | DEGREES | TIME_FORMAT | SOUNDEX |
| CEILING | EXPORT_SET | ST_LONGITUDE | LENGTH |
| TIME | IS_IPV4 | ST_TRANSFORM | CONVERT |
| COALESCE | ASCII | CONVERT_TZ | HEX |
| NVL | INSTR | SPACE | INET6_NTOA |
| INET6_ATON | INET_ATON | GREATEST | LEAST |
| UPPER | LOWER | SUBTIME | ADDTIME |
| DATE_FORMAT | ROUND | GET_FORMAT | - |
有参数类型有要求的系统函数
以下系统函数在参数为 TIME 类型时,禁止用于函数索引。例如:对于 DATE 函数,禁止第一个参数为 TIME 时用于函数索引;对于 DATEDIFF 函数禁止任意参数为 TIME 类型时用于函数索引。
| DATE | TIMESTAMP | MONTHNAME | ADDDATE |
| DATE_SUB | DAY | MONTH | TIMESTAMP_NVL |
| DAYNAME | YEAR | TIMESTAMPDIFF | QUARTER |
| DAYOFMONTH | WEEKOFYEAR | TO_DAYS | DAYOFWEEK |
| WEEKDAY | DATEDIFF | DAYOFYEAR | YEARWEEK |
| TIMESTAMPADD | LAST_DAY | WEEK | - |
Json 相关的系统函数
以下 Json 函数的表达式允许用于函数索引。
| JSON_EXTRACT | JSON_TYPE | JSON_CONTAINS | JSON_LENGTH |
| JSON_CONTAINS_PATH | JSON_INSERT | JSON_DEPTH | JSON_STORAGE_SIZE |
| JSON_KEYS | JSON_STORAGE_FREE | JSON_ARRAY | JSON_MERGE_PRESERVE |
| JSON_QUOTE | JSON_MERGE | JSON_UNQUOTE | JSON_MERGE_PATCH |
| JSON_OVERLAPS | JSON_PRETTY | JSON_REMOVE | JSON_SET |
| JSON_SEARCH | 1 MEMBER OF | JSON_VALID | JSON_VALUE |
| JSON_ARRAY_APPEND | JSON_OBJECT | JSON_ARRAY_INSERT | JSON_QUERY |
| JSON_REPLACE | - | - | - |
此外,以下函数当前仅限用于谓词中。
| JSON_EQUAL | JSON_EXISTS |
CAST 表达式
CAST 表达式较特殊,当其目标类型或源类型为时间类型时,禁止作为函数索引,具体场景如下表所示。
| 源类型 | 目标类型 | 说明 |
|---|---|---|
| TIME | DATETIME / TIMESTAMP / DATE | 禁止作为函数索引 |
| datetime/TIMESTAMP/DATE | TIMESTAMP WITH TIME ZONE / TIMESTAMP WITH LOCAL TIME ZONE | 禁止作为函数索引 |