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. 使用 ...
随机推荐
- 改变DEV控件的字体 z
改变所有的组件字体,使用AppearanceObject.DefaultFont属性:static void Main() { DevExpress.Utils.AppearanceObject ...
- 在window server 2008 64位系统上 发布网站的过程中遇到的问题(转)
发布网站的过程如下: 1.安装数据库系统2.建立数据库,执行sql3.安装iis4.在本地机子上发布网站5.把发布好的东西拷贝到IIS上 1.安装数据库系统: 出现错误:必须使用角色管理工具 安装或配 ...
- codeforces 687C - The Values You Can Make 简单dp
题意:一个数组a[i],你可以挑出若干个数(只能挑一次)加起来等于k, 针对每一种方案,你可以选出这若干个数的子集来组合新数 最后所有的方案能组合出多少种数 分析:一看数据范围n,k<=500 ...
- bjfu1100 圆环
这题也是2011百度之星的一道题.知道做法后代码极简单. 不过我做完后随便上网搜了一下,发现竟然还有很多不同的做法.别的做法我就不管了,我只把我的做法的原理说清楚.我做题时是按如下顺序逐步找到规律的: ...
- javascript 面向对象整理
整理一下js面向对象中的封装和继承. 1.封装 js中封装有很多种实现方式,这里列出常用的几种. 1.1 原始模式生成对象 直接将我们的成员写入对象中,用函数返回. 缺点:很难看出是一个模式出来的实例 ...
- Python对象体系揭秘
Guido用C语言创造了Python,在Python的世界中一切皆为对象. 一.C视角中的Python对象 让我们一起追溯到源头,Python由C语言实现,且向外提供了C的API http://doc ...
- 写i2c_client驱动的两种方式
http://www.cnblogs.com/simonshi/archive/2011/02/24/1963426.html
- GridView控件 Reapter控件 DataList控件 的区别和用法
ASP.NET三大控件: 1.GridView控件:表格视图控件,可以用来绑定结果集或者视图,用起来比较方便和灵活,三个控件中使用最多的控件 用法--- this.gridview1.DataSour ...
- Makefile中用宏定义进行条件编译
在源代码里面如果这样是定义的: #ifdef MACRONAME //可选代码 #endif 那在makefile里面 gcc -D MACRONAME=MACRODEF 或者 gcc ...
- NetAddr
http://www.searchdatabase.com.cn/showcontent_66349.htm [techTarget中国,其专注于IT领域企业级高端市场,为IT专业技术人员和管理决 ...