网站资质证书wordpress权限管理
函数与操作符
计算节点对函数的支持
此文档仅列出部分经特殊处理的函数,若需要了解所有计算节点支持的函数,请向官方获取《计算节点最新功能清单》。
| 函数名称 | 支持状态 | 是否拦截 | 说明 | 
|---|---|---|---|
| ABS() | 支持 | 否 | |
| ACOS() | 支持 | 否 | |
| ADDDATE() | 支持 | 否 | |
| ADDTIME() | 支持 | 否 | |
| AES_DECRYPT() | 支持 | 否 | |
| AES_ENCRYPT() | 支持 | 否 | |
| AND, && | 支持 | 否 | |
| Area() | 支持 | 否 | |
| AsBinary(), AsWKB() | 支持 | 否 | |
| ASCII() | 支持 | 否 | |
| ASIN() | 支持 | 否 | |
| = | 支持 | 否 | |
| := | 不支持 | 是 | |
| AsText(), AsWKT() | 支持 | 否 | |
| ATAN2(), ATAN() | 支持 | 否 | |
| ATAN() | 支持 | 否 | |
| AVG() | 支持 | 否 | |
| BENCHMARK() | 不支持 | 是 | |
| BETWEEN … AND … | 支持 | 否 | |
| BIN() | 支持 | 否 | |
| BINARY | 支持 | 否 | |
| BIT_AND() | 不支持 | 是 | |
| BIT_COUNT() | 支持 | 否 | |
| BIT_LENGTH() | 支持 | 否 | |
| BIT_OR() | 不支持 | 是 | |
| BIT_XOR() | 不支持 | 是 | |
| & | 支持 | 否 | |
| ~ | 支持 | 否 | |
| 支持 | 否 | ||
| ^ | 支持 | 否 | |
| Buffer() | 支持 | 否 | |
| CASE | 支持 | 否 | |
| CAST() | 支持 | 否 | |
| CEIL() | 支持 | 否 | |
| CEILING() | 支持 | 否 | |
| Centroid() | 支持 | 否 | |
| CHAR_LENGTH() | 支持 | 否 | |
| CHAR() | 支持 | 否 | |
| CHARACTER_LENGTH() | 支持 | 否 | |
| CHARSET() | 支持 | 否 | |
| COALESCE() | 支持 | 否 | |
| COERCIBILITY() | 支持 | 否 | |
| COLLATION() | 支持 | 否 | |
| COMPRESS() | 支持 | 否 | |
| CONCAT_WS() | 支持 | 否 | |
| CONCAT() | 支持 | 否 | |
| CONNECTION_ID() | 支持 | 否 | 前端session连接计算节点的connection_id | 
| Contains() | 支持 | 否 | |
| CONV() | 支持 | 否 | |
| CONVERT_TZ() | 支持 | 否 | |
| CONVERT() | 支持 | 否 | 计算节点不论分片表或全局表,都不支持CONVERT(value, type)写法,只支持CONVERT(value using 字符集); | 
| COS() | 支持 | 否 | |
| COT() | 支持 | 否 | |
| COUNT() | 支持 | 否 | |
| COUNT(DISTINCT) | 支持 | 否 | |
| CRC32() | 支持 | 否 | |
| Crosses() | 支持 | 否 | |
| CURDATE() | 支持 | 否 | |
| CURDATE(), CURRENT_DATE | 支持 | 否 | |
| CURRENT_ROLE() | 不支持 | 是 | 计算节点不支持存储节点8.0新增角色功能 | 
| CURRENT_TIME(), CURRENT_TIME | 支持 | 否 | |
| CURRENT_TIMESTAMP(),CURRENT_TIMESTAMP | 支持 | 否 | |
| CURRENT_USER(), CURRENT_USER | 支持 | 否 | 返回当前计算节点数据库用户 | 
| CURTIME() | 支持 | 否 | |
| DATABASE() | 支持 | 否 | 返回当前逻辑库名称 | 
| DATE_ADD() | 支持 | 否 | |
| DATE_FORMAT() | 支持 | 否 | |
| DATE_SUB() | 支持 | 否 | |
| DATE() | 支持 | 否 | |
| DATEDIFF() | 支持 | 否 | |
| DAY() | 支持 | 否 | |
| DAYNAME() | 支持 | 否 | |
| DAYOFMONTH() | 支持 | 否 | |
| DAYOFWEEK() | 支持 | 否 | |
| DAYOFYEAR() | 支持 | 否 | |
| DECODE() | 支持 | 否 | |
| DEFAULT() | 支持 | 否 | |
| DEGREES() | 支持 | 否 | |
| DES_DECRYPT() (deprecated 5.7.6) | 支持 | 否 | |
| DES_ENCRYPT() (deprecated 5.7.6) | 支持 | 否 | |
| Dimension() | 支持 | 否 | |
| Disjoint() | 支持 | 否 | |
| DIV | 支持 | 否 | |
| / | 支持 | 否 | |
| ELT() | 支持 | 否 | |
| ENCODE() | 支持 | 否 | |
| ENCRYPT() (deprecated 5.7.6) | 支持 | 否 | |
| EndPoint() | 支持 | 否 | |
| Envelope() | 支持 | 否 | |
| <=> | 限制支持 | 是 | |
| = | 支持 | 否 | |
| Equals() | 支持 | 否 | |
| EXP() | 支持 | 否 | |
| EXPORT_SET() | 支持 | 否 | |
| ExteriorRing() | 支持 | 否 | |
| EXTRACT() | 支持 | 否 | |
| ExtractValue() | 支持 | 否 | |
| FIELD() | 支持 | 否 | |
| FIND_IN_SET() | 支持 | 否 | |
| FLOOR() | 支持 | 否 | |
| FORMAT() | 支持 | 否 | |
| FOUND_ROWS() | 不支持 | 是 | |
| FROM_BASE64() | 支持 | 否 | |
| FROM_DAYS() | 支持 | 否 | |
| FROM_UNIXTIME() | 支持 | 否 | |
| GeomCollFromText(),GeometryCollectionFromText() | 支持 | 否 | |
| GeomCollFromWKB(),GeometryCollectionFromWKB() | 支持 | 否 | |
| GeometryCollection() | 支持 | 否 | |
| GeometryN() | 支持 | 否 | |
| GeometryType() | 支持 | 否 | |
| GeomFromText(), GeometryFromText() | 支持 | 否 | |
| GeomFromWKB() | 支持 | 否 | |
| GET_FORMAT() | 支持 | 否 | |
| GET_LOCK() | 不支持 | 是 | |
| GLength() | 支持 | 否 | |
| >= | 支持 | 否 | |
| > | 支持 | 否 | |
| GREATEST() | 支持 | 否 | |
| GROUP_CONCAT() | 支持 | 否 | |
| GROUPING() | 不支持 | 是 | 存储节点8.0新增功能 | 
| GTID_SUBSET() | 支持 | 否 | |
| GTID_SUBTRACT() | 支持 | 否 | |
| HEX() | 支持 | 否 | |
| HOUR() | 支持 | 否 | |
| IF() | 支持 | 否 | |
| IFNULL() | 支持 | 否 | |
| IN() | 支持 | 否 | |
| INET_ATON() | 支持 | 否 | |
| INET_NTOA() | 支持 | 否 | |
| INET6_ATON() | 支持 | 否 | |
| INET6_NTOA() | 支持 | 否 | |
| INSERT() | 支持 | 否 | |
| INSTR() | 支持 | 否 | |
| InteriorRingN() | 支持 | 否 | |
| Intersects() | 支持 | 否 | |
| INTERVAL() | 支持 | 否 | |
| IS_FREE_LOCK() | 不支持 | 是 | |
| IS_IPV4_COMPAT() | 支持 | 否 | |
| IS_IPV4_MAPPED() | 支持 | 否 | |
| IS_IPV4() | 支持 | 否 | |
| IS_IPV6() | 支持 | 否 | |
| IS NOT NULL | 支持 | 否 | |
| IS NOT | 支持 | 否 | |
| IS NULL | 支持 | 否 | |
| IS_USED_LOCK() | 不支持 | 是 | |
| IS | 支持 | 否 | |
| IsClosed() | 支持 | 否 | |
| IsEmpty() | 支持 | 否 | |
| ISNULL() | 支持 | 否 | |
| IsSimple() | 支持 | 否 | |
| JSON_ARRAYAGG(col_or_expr) [over_clause] | 支持 | 是 | 存储节点8.0与5.7新增功能 | 
| JSON_OBJECTAGG(key, value) [over_clause] | 支持 | 是 | 存储节点8.0与5.7新增功能 | 
| JSON_PRETTY(json_val) | 支持 | 是 | 存储节点8.0与5.7新增功能 | 
| JSON_STORAGE_FREE(json_val) | 支持 | 是 | 存储节点8.0新增功能 | 
| JSON_STORAGE_SIZE(json_val) | 支持 | 是 | 存储节点8.0与5.7新增功能 | 
| JSON_MERGE_PATCH(json_doc, json_doc[, json_doc] …) | 支持 | 是 | 存储节点8.0与5.7新增功能 | 
| JSON_TABLE(expr, path COLUMNS (column_list) [AS] alias) | 不支持 | 是 | 存储节点8.0新增功能 | 
| LAST_DAY | 支持 | 否 | |
| LAST_INSERT_ID() | 支持 | 否 | |
| LCASE() | 支持 | 否 | |
| LEAST() | 支持 | 否 | |
| << | 支持 | 否 | |
| LEFT() | 支持 | 否 | |
| LENGTH() | 支持 | 否 | |
| <= | 支持 | 否 | |
| < | 支持 | 否 | |
| LIKE | 支持 | 否 | |
| LineFromText() | 支持 | 否 | |
| LineFromWKB(), LineStringFromWKB() | 支持 | 否 | |
| LineString() | 支持 | 否 | |
| LN() | 支持 | 否 | |
| LOAD_FILE() | 不支持 | 是 | |
| LOCALTIME(), LOCALTIME | 支持 | 否 | |
| LOCALTIMESTAMP, LOCALTIMESTAMP() | 支持 | 否 | |
| LOCATE() | 支持 | 否 | |
| LOG10() | 支持 | 否 | |
| LOG2() | 支持 | 否 | |
| LOG() | 支持 | 否 | |
| LOWER() | 支持 | 否 | |
| LPAD() | 支持 | 否 | |
| LTRIM() | 支持 | 否 | |
| MAKE_SET() | 支持 | 否 | |
| MAKEDATE() | 支持 | 否 | |
| MAKETIME() | 支持 | 否 | |
| MASTER_POS_WAIT() | 不支持 | 是 | |
| MATCH | 支持 | 否 | |
| MAX() | 支持 | 否 | |
| MBRContains() | 支持 | 否 | |
| MBRDisjoint() | 支持 | 否 | |
| MBREqual() (deprecated 5.7.6) | 支持 | 否 | |
| MBRIntersects() | 支持 | 否 | |
| MBROverlaps() | 支持 | 否 | |
| MBRTouches() | 支持 | 否 | |
| MBRWithin() | 支持 | 否 | |
| MD5() | 支持 | 否 | |
| MICROSECOND() | 支持 | 否 | |
| MID() | 支持 | 否 | |
| - | 支持 | 否 | |
| MIN() | 支持 | 否 | |
| MINUTE() | 支持 | 否 | |
| MLineFromText(),MultiLineStringFromText() | 支持 | 否 | |
| MLineFromWKB(),MultiLineStringFromWKB() | 支持 | 否 | |
| MOD() | 支持 | 否 | |
| % or MOD | 支持 | 否 | |
| MONTH() | 支持 | 否 | |
| MONTHNAME() | 支持 | 否 | |
| MPointFromText(),MultiPointFromText() | 支持 | 否 | |
| MPointFromWKB(), MultiPointFromWKB() | 支持 | 否 | |
| MPolyFromText(),MultiPolygonFromText() | 支持 | 否 | |
| MPolyFromWKB(),MultiPolygonFromWKB() | 支持 | 否 | |
| MultiLineString() | 支持 | 否 | |
| MultiPoint() | 支持 | 否 | |
| MultiPolygon() | 支持 | 否 | |
| NAME_CONST() | 支持 | 否 | |
| NOT BETWEEN … AND … | 支持 | 否 | |
| !=, <> | 支持 | 否 | |
| NOT IN() | 支持 | 否 | |
| NOT LIKE | 支持 | 否 | |
| NOT REGEXP | 支持 | 否 | |
| NOT, ! | 支持 | 否 | |
| NOW() | 支持 | 否 | |
| NULLIF() | 支持 | 否 | |
| NumGeometries() | 支持 | 否 | |
| NumInteriorRings() | 支持 | 否 | |
| NumPoints() | 支持 | 否 | |
| OCT() | 支持 | 否 | |
| OCTET_LENGTH() | 支持 | 否 | |
| OLD_PASSWORD() (deprecated 5.6.5) | 支持 | 否 | |
| , OR | 支持 | ||
| ORD() | 支持 | 否 | |
| Overlaps() | 支持 | 否 | |
| PASSWORD() | 支持 | 否 | |
| PERIOD_ADD() | 支持 | 否 | |
| PERIOD_DIFF() | 支持 | 否 | |
| PI() | 支持 | 否 | |
| + | 支持 | 否 | |
| Point() | 支持 | 否 | |
| PointFromText() | 支持 | 否 | |
| PointFromWKB() | 支持 | 否 | |
| PointN() | 支持 | 否 | |
| PolyFromText(), PolygonFromText() | 支持 | 否 | |
| PolyFromWKB(), PolygonFromWKB() | 支持 | 否 | |
| Polygon() | 支持 | 否 | |
| POSITION() | 支持 | 否 | |
| POW() | 支持 | 否 | |
| POWER() | 支持 | 否 | |
| PROCEDURE ANALYSE() | 不支持 | 是 | |
| PS_CURRENT_THREAD_ID() | 不支持 | 是 | 存储节点8.0新增功能 | 
| PS_THREAD_ID(connection_id) | 不支持 | 是 | 存储节点8.0新增功能 | 
| QUARTER() | 支持 | 否 | |
| QUOTE() | 支持 | 否 | |
| RADIANS() | 支持 | 否 | |
| RAND() | 支持 | 否 | JOIN查询中分片表不支持RAND任何语法 | 
| RANDOM_BYTES() | 支持 | 否 | |
| REGEXP | 支持 | 否 | |
| RELEASE_LOCK() | 不支持 | 是 | |
| REPEAT() | 支持 | 否 | |
| REPLACE() | 支持 | 否 | |
| REVERSE() | 支持 | 否 | |
| >> | 支持 | 否 | |
| RIGHT() | 支持 | 否 | |
| RLIKE | 支持 | 否 | |
| ROLES_GRAPHML() | 不支持 | 是 | 存储节点8.0新增功能 | 
| ROUND() | 支持 | 否 | |
| ROW_COUNT() | 不支持 | 是 | |
| RPAD() | 支持 | 否 | |
| RTRIM() | 支持 | 否 | |
| SCHEMA() | 支持 | 否 | select schema()返回逻辑库名称 | 
| SEC_TO_TIME() | 支持 | 否 | |
| SECOND() | 支持 | 否 | |
| SESSION_USER() | 支持 | 否 | select session_user()显示为当前登录的计算节点数据库用户信息 | 
| SHA1(), SHA() | 支持 | 否 | |
| SHA2() | 支持 | 否 | |
| SIGN() | 支持 | 否 | |
| SIN() | 支持 | 否 | |
| SLEEP() | 不支持 | 是 | 可配置参数是否允许SLEEP函数,默认不允许 | 
| SOUNDEX() | 支持 | 否 | |
| SOUNDS LIKE | 支持 | 否 | |
| SPACE() | 支持 | 否 | |
| SQL_THREAD_WAIT_AFTER_GTIDS()(deprecated 5.6.9) | 不支持 | 是 | |
| SQRT() | 支持 | 否 | |
| SRID() | 支持 | 否 | |
| StartPoint() | 支持 | 否 | |
| STD() | 不支持 | 是 | |
| STDDEV_POP() | 不支持 | 是 | |
| STDDEV_SAMP() | 不支持 | 是 | |
| STDDEV() | 不支持 | 是 | |
| STR_TO_DATE() | 支持 | 否 | |
| STRCMP() | 支持 | 否 | |
| SUBDATE() | 支持 | 否 | |
| SUBSTR() | 支持 | 否 | |
| SUBSTRING_INDEX() | 支持 | 否 | |
| SUBSTRING() | 支持 | 否 | |
| SUBTIME() | 支持 | 否 | |
| SUM() | 支持 | 否 | |
| SYSDATE() | 支持 | 否 | (注意:测试服务器的SYSDATE加了参数,使其等于NOW() 所以不会有延迟的区别,为了规避主从库数据不一致等风险) | 
| SYSTEM_USER() | 支持 | 否 | 显示为当前登录的计算节点数据库用户信息 | 
| TAN() | 支持 | 否 | |
| TIME_FORMAT() | 支持 | 否 | |
| TIME_TO_SEC() | 支持 | 否 | |
| TIME() | 支持 | 否 | |
| TIMEDIFF() | 支持 | 否 | |
| * | 支持 | 否 | |
| TIMESTAMP() | 支持 | 否 | |
| TIMESTAMPADD() | 支持 | 否 | |
| TIMESTAMPDIFF() | 支持 | 否 | |
| TO_BASE64() | 支持 | 否 | |
| TO_DAYS() | 支持 | 否 | |
| TO_SECONDS() | 支持 | 否 | |
| Touches() | 支持 | 否 | |
| TRIM() | 支持 | 否 | |
| TRUNCATE() | 支持 | 否 | |
| UCASE() | 支持 | 否 | |
| - | 支持 | 否 | |
| UNCOMPRESS() | 支持 | 否 | |
| UNCOMPRESSED_LENGTH() | 支持 | 否 | |
| UNHEX() | 支持 | 否 | |
| UNIX_TIMESTAMP() | 支持 | 否 | |
| UpdateXML() | 支持 | 否 | |
| UPPER() | 支持 | 否 | |
| USER() | 支持 | 否 | SELECT user();查询出来的是当前登录的计算节点数据库用户 | 
| UTC_DATE() | 支持 | 否 | |
| UTC_TIME() | 支持 | 否 | |
| UTC_TIMESTAMP() | 支持 | 否 | |
| UUID_SHORT() | 支持 | 否 | |
| UUID() | 支持 | 否 | |
| VALIDATE_PASSWORD_STRENGTH() | 支持 | 否 | |
| VALUES() | 支持 | 否 | |
| VAR_POP() | 不支持 | 是 | |
| VAR_SAMP() | 不支持 | 是 | |
| VARIANCE() | 不支持 | 是 | |
| VERSION() | 支持 | 否 | 查询结果显示计算节点的version | 
| WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS() | 不支持 | 是 | |
| WEEK() | 支持 | 否 | |
| WEEKDAY() | 支持 | 否 | |
| WEEKOFYEAR() | 支持 | 否 | |
| WEIGHT_STRING() | 支持 | 否 | |
| 窗口函数 | 不支持 | 是 | 存储节点8.0新增功能 | 
| Within() | 支持 | 否 | |
| X() | 支持 | 否 | |
| XOR | 支持 | 否 | |
| Y() | 支持 | 否 | |
| YEAR() | 支持 | 否 | |
| YEARWEEK() | 支持 | 否 | 
聚合结果集合并(MERGE_RESULT)
MERGE_RESULT控制计算节点对聚合函数的结果是否进行合并。当该值设置为1时,计算节点将合并聚合函数的结果;当该值设置为0时,计算节点将不合并聚合函数的结果。
默认情况下,MERGE_RESULT值为1。
MERGE_RESULT=0时,含有聚合函数的SQL语句,计算节点将不合并结果集,每个数据节点的查询结果单独返回:
mysql> select count(*) from customer;
+----------+
| COUNT(*) |
+----------+
| 23       |
| 11       |
| 13       |
| 53       |
+----------+
4 rows in set (0.00 sec)
 
SET MERGE_RESULT=0 和SET SHOW_DNID=1,可用于统计业务表在各个数据节点上的分布情况:
mysql> set MERGE_RESULT=0;
mysql> set show_dnid=1;
mysql> select count(*) from customer;
+----------+------+
| COUNT(*) | DNID |
+----------+------+
| 13       | 12   |
| 11       | 15   |
| 53       | 13   |
| 23       | 14   |
+----------+------+
4 rows in set (0.00 sec)
 
结果集中的DNID列显示了每个数据节点的唯一标识ID。结果中,非常直观的显示了customer表在各个数据节点上的实际数据量。
MERGE_RESULT=1时,含有聚合函数的SQL语句,计算节点将所有数据节点的结果按SQL语义返回查询结果:
mysql> set show_dnid=0;
mysql> set MERGE_RESULT=1;
mysql> select count(*) from customer;
+----------+
| COUNT(*) |
+----------+
| 100      |
+----------+
1 row in set (0.00 sec)
