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. 使用 ...
随机推荐
- DevExpress控件使用小结 z
.TextEditor(barEditItem)取文本 string editValue = barEditItem1.EditValue.ToString(); //错误,返回null string ...
- 《Python 学习手册4th》 第十六章 函数基础
''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...
- Richedit使用大全
原文地址:http://blog.csdn.net/pcseye/article/details/3903333 一.常见问题 a.可以编译,不能执行的 AfxInitRichEdit(); b.升级 ...
- duilib relativepos属性导致控件错误的bug修复
转载请说明出处,谢谢~~ 我在仿酷狗音乐播放器的开发日志系列里,曾经提到了这个bug,文章地址为:http://blog.csdn.net/zhuhongshu/article/details/381 ...
- 通过gdb调试分析Linux内核的启动过程
作者:吴乐 山东师范大学 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验流程 1.打开环境 执 ...
- 利用Javascript获取当前日期的农历日期
来源:http://www.ido321.com/926.html JavaScript代码 1: /*设置农历日期*/ 2: var CalendarData=new Array(100); 3: ...
- matlab特征值分解和奇异值分解
特征值分解 函数 eig 格式 d = eig(A) %求矩阵A的特征值d,以向量形式存放d. d = eig(A,B) %A.B为方阵,求广义特征值d,以向量形式存放d. ...
- BootStrap入门教程 (四) :JQuery类库插件(模态窗口,滚动监控,标签效果,提示效果,“泡芙”效果,警告区域,折叠效果,旋转木马,输入提示)
上讲回顾:Bootstrap组件丰富同时具有良好可扩展性,能够很好地应用在生产环境.这些组件包括按钮(Button),导航(Navigation),缩略图( thumbnails),提醒(Alert) ...
- UIButton 在 iOS7.0与iOS7.1 中关于enabled的一点区别
前些日子,在一台iOS7.0的设备上进行调试,关于UIButton的一部分代码如下 1 self.btn_loadmore.enabled = NO; 2 [self.btn_loadmore set ...
- LCD1602汉字、自定义字符取模
用zimo221软件, 新建一个8*8的图像,留出左边3列,用右边5列点出自定义字符,选择取模方式C51,就可得到对应的编码 如下图:温度符号℃的编码