MYSQL 5.7 新增150多个新功能
There are over 150 new features in MySQL 5.7.
The MySQL manual is very good, but verbose. This is a list of new features in short bullet form. I have tried very hard to make sure each feature is only mentioned once. So InnoDB native partitioning could be mentioned under either InnoDB or partitioning.
Replication
- Multi source replication [1]
- Online GTID migration path [1 2 3]
- Improved semi-sync performance [1 2]
- Loss-less semi-sync replication [1 2]
- Semi-sync can now wait for a configurable number of slaves [1]
- Intra-schema parallel replication [1]
- Ability to tune group commit viabinlog_group_commit_sync_delay andbinlog_group_commit_sync_no_delay_countoptions. [1 2]
- Non-blocking SHOW SLAVE STATUS [1 2]
- Online CHANGE REPLICATION FILTER [1]
- Online CHANGE MASTER TO without stopping SQL thread [1]
- Multi-threaded slave ordered commits (Sequential Consistency) [1]
- Support SLAVE_TRANSACTION_RETRIES in multi-threaded slave mode [1]
- A WAIT_FOR_EXECUTED_GTID_SET function has been introduced [1 2]
- Optimize GTIDs for Passive Slaves [1 2]
- GTID Replication no longer requires log-slave-updates be enabled
- XA Support when the binary log is turned on [1]
- GTIDs in the OK packet [1]
- Better synchronization between dump and user threads when racing for the binlog [1]
- Improved memory management of Binlog_sender [1]
- Option to suppress "unsafe for binlog" messages in error log [1]
- Defaults change: binlog_format=ROW
- Defaults change: sync_binlog=1
- Defaults change:binlog_gtid_simple_recovery=1
- Defaults change:binlog_error_action=ABORT_SERVER
- Defaults change: slave_net_timeout=60
InnoDB
- Online buffer pool resize [1]
- Improved crash recovery performance [1]
- Improved read-only transaction scalability [1 2 34]
- Improved read-write transaction scalability [1 23 4]
- Several optimizations for high performance temporary tables [1 2 3 4 5]
- ALTER TABLE RENAME INDEX only requires meta-data change [1]
- Increasing VARCHAR size only requires meta-data change [1]
- ALTER TABLE performance improved [1]
- Multiple page_cleaner threads [1]
- Optimized buffer pool flushing [1]
- New innodb_log_checksum_algorithm option [1]
- Improved NUMA support [1]
- General Tablespace support [1]
- Transparent Page Compression [1]
- innodb_log_write_ahead_size introduced to address potential 'read-on-write' with redo logs [1]
- Fulltext indexes now support pluggable parsers [1]
- Support for ngram and MeCab full-text parser plugins [1 2]
- Fulltext search optimizations [1]
- Buffer pool dump now supportsinnodb_buffer_pool_dump_pct [1]
- The doublewrite buffer is now disabled on filesystems that supports atomic writes (aka Fusion-io support) [1]
- Page fill factor is now configurable [1]
- Support for 32K and 64K pages [1]
- Online undo log truncation [1]
- Update_time meta data is now updated [1]
- TRUNCATE TABLE is now atomic [1]
- Memcached API performance improvements [1]
- Adaptive hash scalability improvements [1]
- InnoDB now implementsinformation_schema.files [1]
- Legacy InnoDB monitor tables have been removed or replaced by global configuration settings
- InnoDB default row format now configurable [1]
- InnoDB now drops tables in a background thread [1]
- InnoDB tmpdir is now configurable [1]
- InnoDB MERGE_THRESHOLD is now configurable [1]
- Defaults change:innodb_file_format=Barracuda
- Defaults change: innodb_large_prefix=1
- Defaults change: innodb_page_cleaners=4
- Defaults change: innodb_purge_threads=4
- Defaults change:innodb_buffer_pool_dump_at_shutdown=1
- Defaults change:innodb_buffer_pool_load_at_startup=1
- Defaults change:innodb_buffer_pool_dump_pct=25
- Defaults change: innodb_strict_mode=1
- Defaults change:innodb_checksum_algorithm=crc32
- Defaults change:innodb_default_row_format=DYNAMIC
Optimizer
- Improved optimizer cost model, leading to more consistently better query plans [1 2 3 4]
- Optimizer cost constants are now configurable on a global or per engine basis [1 2]
- Query parser has been refactored and improved [1]
- EXPLAIN FOR CONNECTION [1]
- UNION ALL does not use a temporary table [1 23 4]
- Filesort is now optimized to pack values [1]
- Subqueries in FROM clause can now be handled same as a view (derived_merge) [1]
- Queries using row value constructors are now optimized [1 2]
- Optimizer now supports a new condition filtering optimization [1 2]
- EXPLAIN FORMAT=JSON now shows cost information [1]
- Support for STORED and VIRTUAL generated columns (aka functional indexes) [1]
- Prepared statements refactored internally and performance improved [1 2]
- New query hints using comment-like /*+ */syntax [1]
- Server-side query rewrite framework [1]
- ONLY_FULL_GROUP_BY now more standards compliant [1]
- Support for gb18030 character set [1]
- Improvements to Dynamic Range access [1]
- Memory used by the range optimizer is now configurable [1]
- Defaults change:internal_tmp_disk_storage_engine=INNODB[1]
- Defaults change:eq_range_index_dive_limit=200
- Defaults change:sql_mode=ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
Defaults change:
optimizer_switch=condition_fanout_filter=on, derived_merge=on
- Defaults change: EXTENDED and PARTITIONSkeywords for EXPLAIN enabled by default
Security
- Username size increased to 32 characters [1]
- Support for IF [NOT] EXISTS clause inCREATE/DROP USER [1]
- Server option to require secure transport [1]
- Support for multiple AES Encryption modes [12]
- Support for TLSv1.2 (with OpenSSL) and TLSv1.1 (with YaSSL) [1 2]
- Support to LOCK/UNLOCK user accounts [1 2]
- Support for password expiration policy [1 2]
- Password strength enforcement
- test database no longer created on installation
- Anonymous users no longer created on installation
- Random password generated by default on installation
- New ALTER USER command
- SET password='' now accepts a password instead of hash
- Server now generates SSL keys by default
- Insecure old_password hash removed [1]
- Ability to create utility users for stored programs that can not login [1]
- mysql.user.password field renamed asauthentication_string to better describe its current usage.
- Support for tablespace encryption [1]
Performance Schema
- Scalable memory allocation [1]
- Overhead has been reduced in client connect/disconnect phases
- Memory footprint has been reduced
- pfs_lock implementation has been improved
- Table IO statistics are now batched for improved performance
- Memory usage instrumentation
- Stored programs instrumentation
- Replication slave instrumentation
- Metadata Locking (MDL) Instrumentation
- Transaction instrumentation
- Prepared Statement instrumentation
- Stage Progress instrumentation
- SX-lock and rw_lock instrumentation
- Thread status and variables
- Defaults change: performance-schema-consumer-events_statements_history=ON
GIS
- InnoDB supports indexing of spatial datatypes [1]
- Consistent naming scheme for GIS functions [1]
- GIS has been refactored internally and is now based on Boost Geometry [1]
- Geohash functions [1 2]
- GeoJSON functions [1 2]
- Functions: ST_Distance_Sphere, ST_MakeEnvelope, ST_IsValid, ST_Validate, ST_Simplify, ST_Buffer and ST_IsSimple [1 2]
Triggers
Partitioning
- Index condition pushdown optimization now supported
- HANDLER command is now supported
- WITHOUT VALIDATION option now supported forALTER TABLE ... EXCHANGE PARTITION
- Support for Transportable Tablespaces
- Partitioning is now storage-engine native for InnoDB
SYS (new)
JSON (new)
- Native JSON Data Type [1]
- JSON Comparator
- Short-hand JSON_EXTRACT operator (field->"json_path") [1]
- New Document Store (5.7.12)
- Functions: JSON_ARRAY, JSON_MERGE, JSON_OBJECT for creating JSON values [1]
- Functions: JSON_CONTAINS, JSON_CONTAINS_PATH, JSON_EXTRACT, JSON_KEYS, JSON_SEARCH for searching JSON values [1]
- Functions: JSON_ARRAY_APPEND, JSON_ARRAY_INSERT, JSON_INSERT, JSON_QUOTE, JSON_REMOVE, JSON_REPLACE, JSON_UNSET, JSON_UNQUOTE to modify JSON values [1]
- Functions: JSON_DEPTH, JSON_LENGTH, JSON_TYPE, JSON_VALID to return JSON value attributes [1]
Client Programs
- New mysqlpump utility [1]
- The mysql client now supports Ctrl+C to clear statement buffer
- rewrite-db option added to mysqlbinlog [1 2]
- New mysql_ssl_rsa_setup utility to help set up SSL [1]
- SSL support added to mysqlbinlog
- Idempotent mode added to mysqlbinlog
- Client --ssl changed to now force SSL
- Enhancements to the innochecksum utility
- Removal of several outdated/unsafe command line utilities [1]
- Many Perl command line clients converted to C++
- Client Side Protocol Tracing
- Client API method to reset connection
- New MySQL Shell (mysqlsh) (separate download)
libmysqlclient
- Restricted export functions to documented MySQL C API
- Added pkg-config support
- Removed _r symlinks
- Changed so version to 20 (from 18)
Building
- Compiler switched to GCC on Solaris
- MySQL now compiles with Bison 3 (* change also backported)
- CMake now used to compile on all platforms
- Unneeded CMake checks have been removed (and unused macros removed from source files)
- Build support for gcc, clang and MS Studio
Misc
- Server new connection throughput improved considerably [1]
- mysql_install_db replaced by mysqld --initialize [1]
- Native support for syslog [1 2]
- Native support for systemd
- disabled_storage_engines option allows a block list of engines
- SET GLOBAL offline_mode=1 [1 2]
- super_read_only option [1]
- Detect transaction boundaries
- Server version token and check [1
- SELECT GET_LOCK() can now acquire multiple locks [1 2]
- Configurable maximum statement execution time on a global and per query basis [1 2]
- Better handling of connection id rollover
- DTrace support [1]
- More consistent IGNORE clause and STRICTmode
- A number of tables in the mysql schema have moved from MyISAM to InnoDB
- Server error log format improved to be consistent
- Extract query digest moved from performance_schema into the server directly
- Improved scalability of meta data locking
- Increased control over error log verbosity
- Stacked Diagnostic Areas
- The server now supports a "SHUTDOWN" command
- Removed support for custom atomics implementation
- Removed "unique option prefix support" from server and utilities, which allowed options to be configured using multiple names.
- Removed unsafe ALTER IGNORE TABLE functionality. Syntax remains for compatibility
- Removed unsafe INSERT DELAYED functionality. Syntax remains for compatibility
- Removed of outdated sql-bench scripts in distributions
- Removal of ambiguous YEAR(2) datatype
- Defaults change: log_warnings=2
- Defaults change:table_open_cache_instances=16
MYSQL 5.7 新增150多个新功能的更多相关文章
- MySQL 5.7 Replication 相关新功能说明
背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等.因为都是和复制相关, ...
- 初识 MySQL 5.6 新功能、参数
摘要: 继上一篇的文章 初识 MySQL 5.5 新功能.参数 之后,现在MySQL5.6 针对 MySQL5.5 各个方面又提升了很多,特别在性能和一些新参数上面,现在看看大致提升了哪些方面(后续不 ...
- MySQL 5.7 Replication 相关新功能说明 (转)
背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等.因为都是和复制相关, ...
- MySQL Database on Azure新功能
本月中国版的MySQL Database on Azure发布了两项新功能: 1.主从复制——只读实例 在这之前Azure上的MySQL数据库也是支持主从复制的,但是只能作为on-premises部署 ...
- MySQL 8.0 新增SQL语法对窗口函数和CTE的支持
尝试了一下MySQL 8.0的部分新特性. 如果用过MSSQL或者是Oracle中的窗口函数(Oracle中叫分析函数), 然后再使用MySQL 8.0之前的时候,就知道需要在使用窗口函数处理逻辑的痛 ...
- Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能
Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能 1. MySQL 5.6 5 大新特性1 1.1. 优化器的改进1 1.2. InnoDB 改进1 1.3. 使用 ...
- MySQL 8.0有什么新功能
https://mysqlserverteam.com/whats-new-in-mysql-8-0-generally-available/ 我们自豪地宣布MySQL 8.0的一般可用性. 现在下载 ...
- MySQL用sql复制表数据到新表的方法
用sqlyog无法直接复制出一个不同表名的表来,只能copy到其他库上同名的表. 在MySQL数据库中,应该如何用sql将表数据复制到新表中呢? 本人通过试验测试成功了,而且相当简单易懂,速度也非常快 ...
- Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能
Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能 1. MySQL 5.6 5 大新特性1 1.1. 优化器的改进1 1.2. InnoDB 改进1 1.3. 使用 ...
随机推荐
- Launcher2编译
Android的源码包,压缩文件大概有3个G左右,要使用其中自带的一些源码需要很多技巧,否则会提示找不到一些库,大量的报错让人心神不定,不知所从. 我拿桌面代码举个例子吧. 桌面代码在源码包的pack ...
- IOS 疑问记录
1. NSThread 中的 NSRunLoop 2. NSThread 中的 performSelector:onThread:withObject:waitUntilDone:
- C 实现的算法篇
算法的定义:算法是解决实际问题的一种精确的描述方法,目前,广泛认同的定义是:算法的模型分析的一组可行的确定的和有穷的规则 算法的五个特性:有穷性,确切性,输入,输出,可行性.目前算法的可执行的步骤非常 ...
- sizeof和strlen小结
sizeof和strlen小结 写在前面 之所以要总结一下sizeof和strlen的用法和区别,是因为这些知识可以帮助我们更加深入的理解各种数据结构在内存中的占用情况,也许表面上看好像没有多大用处, ...
- UML统一建模语言
概述 统一建模语言(UML)是一种图形化的语言,用于软件密集系统要素的可视化.制定规范.构建对象和编写文档.UML提供了一种标准的方式来描述系统的设计图,既包括概念方面,例如业务过程和系统功能,也包括 ...
- Iaas概述
IAAS :设施即服务,为开发者提供存储,计算,网络等资源,整体架构如下图: 整体分为三个部分: 1.Iaas云的管理部分:对整个云有超级用户管理权限,可以查看监控整个云中的资源,租户信息,并进行管理 ...
- 最大二位子数组和问题(homework-02)
前面已经谈过最大一维子数组和问题,这里面扩展到二维. 一. 常规情况 一个矩形的数组,找到一个矩形的子数组有最大的元素和,求这个和. 1. 从朴素算法入手,枚举矩形数组的4个顶点,以此计算其数组和.同 ...
- JSF 2 hidden value example
In JSF, you can use the <h:inputHidden /> tag to render a HTML hidden value field. For example ...
- LoadRunner显示中文乱码的问题
lr_convert_string_encoding Converts a string to a different encoding. Return Values:This function re ...
- php-fpm 启动不了 libiconv.so.2找不到
service php-fpm start Starting php-fpm /alidata/server/php/sbin/php-fpm: error while loading shared ...