本文搜集了MySQL8.0的第一个版本中移除的参数和特性,随后版本如有新的变化,会在本文基础上进行更新。
注意有些是在8.0目前被设置为deprecated状态,有些是在5.7及之前版本已经设置为deprecated,但在8.0中彻底将相关代码移除。
MySQL8.0.0
WL#7704: InnoDB: Remove deprecated file format parameters in 8.0
支持配置file-format的目的是为了兼容早期的老版本,在8.0之前的版本中,主要支持两种文件格式:
- Antelope: 对应的行格式为COMPACT及REDUNDANT行格式
- Barracuda:新的文件格式,对应行格式为COMPRESSED及DYNAMIC
由于早期版本已经过了长期维护期限,旧的文件格式在8.0不在维护,移除这些老的代码有助于让代码结构更加清晰。
移除file_format相关的几个参数:
innodb_file_format
innodb_file_format_check
innodb_file_format_max
innodb_large_prefix
在INFORMATION_SCHEMA中和file-format相关的列被移除:
innodb_sys_tablespaces
innodb_sys_tables
这个commit之后,大量的代码被清除掉,看起来清晰多了。。。
WL#8157: Remove deprecated GIS functions
移除一些GIS相关的旧函数,新的函数使用ST_xxx代替,总共移除了67个函数,包括对应的test case
Area AsBinary AsText AsWKB AsWKT
Buffer
Centroid Contains ConvexHull Crosses
Dimension Disjoint Distance
EndPoint Envelope Equals ExteriorRing
GeomCollFromText GeomCollFromWKB GeometryCollectionFromText
GeometryCollectionFromWKB GeometryFromText GeometryFromWKB
GeomFromText GeomFromWKB GeometryN GeometryType GLength
InteriorRingN Intersects IsClosed IsEmpty IsSimple
LineFromText LineFromWKB LineStringFromText LineStringFromWKB
MBREqual MLineFromText MLineFromWKB MPointFromText
MPointFromWKB MPolyFromText MPolyFromWKB MultiLineStringFromText
MultiLineStringFromWKB MultiPointFromText MultiPointFromWKB
MultiPolygonFromText MultiPolygonFromWKB
NumGeometries NumInteriorRings NumPoints
Overlaps
PointFromText PointFromWKB PointN PolyFromText PolyFromWKB
PolygonFromText PolygonFromWKB
SRID StartPoint
Touches
Within
X
Y
WL#8927: Deprecate mysql_plugin in 5.7 and remove in 8.0
没用过这玩意儿, 从文档来看mysql_plugin主要是提供了一个管理plugin的接口,可以配置哪些plugin被载入到实例(文档)看起来使用的人很少,没必要留着了。
WL#8843: Deprecate and remove the parameter innodb_support_xa
移除参数innodb_support_xa; 原因是这个参数的功能已经无效了,一方面是当设置为OFF时,PREPARE的事务只能回滚,没办法让其提交;另外一方面是需要保证Binlog/Engine的崩溃恢复一致性。
移除该参数后,默认XA就是开启的。
WL#8893: InnoDB: Remove the deprecated parameter innodb_checksums
没啥好说的,5.6就设置为deprecated variable了,改名为innodb_checksum_algorithm,是时候把相关代码彻底移除了。
WL#8894: InnoDB: Remove deprecated parameter innodb_locks_unsafe_for_binlog
同上,5.6已经deprecated, 8.0彻底移除代码, (该参数的说明文档,不过话说正常情况下,应该也没人会去设置这玩意儿吧。)
WL#8903: InnoDB: Remove deprecated parameter innodb_stats_sample_pages
移除参数innodb_stats_sample_pages,新的参数名为innodb_stats_transient_sample_pages(内存更新采样的page数),及innodb_stats_persistent_sample_pages(持久化统计信息采样page数)
WL#9071: Remove mysql_install_db and server --bootstrap option
mysql_install_db被移除mysqld的bootstrap参数也删掉了,以后安装实例需要使用mysqld --initialize
WL#8971: Deprecate and remove partitioning storage engine
移除ha_partition分区引擎
分区引擎实际上是建立在真正的存储引擎之上的,在5.7版本里,分区表各个分区的handler已经下推到引擎层(InnoDB native partition table)
之后需要引擎本身支持Native Partition,例如目前myisam不支持native partition,就会报错:
mysql> CREATE TABLE t1 (a int not null primary key, b int) engine=myisam partition by hash(a) partitions 4;
ERROR 1178 (42000): The storage engine for the table doesn't support native partitioning
mysql> CREATE TABLE t1 (a int not null primary key, b int) engine=innodb partition by hash(a) partitions 4;
Query OK, 0 rows affected (0.01 sec)
WL#9014: Deprecate and remove mysql_shutdown()
删除C API的mysql_shutdown接口, 删除Command类型COM_SHUTDOWN
WL#9091: Remove --ssl, --ssl-verify-server-cert client-side options
删除--ssl及--ssl-verify-server-cert选项,以后请使用WL#8785实现的--ssl-mode选项
WL#9218: Remove deprecated LOAD DATA events from replication code
LOAD DATA语句以statement记录时产生的一些事件类型,如LOAD_EVENT, CREATE_FILE_EVENT, EXEC_LOAD_EVENT,NEW_LOAD_EVENT在5.0版本已经deprecated了,8.0全部删除掉,反正5.0已经不在官方支持范围了。。。