http://www.thecompletelistoffeatures.com/
There is over-new features in MySQL 5.7.
The MySQL manual is very good, but verbose. This is a list of the new features in short bullet form. I have the tried very hard-to-make sure feature are only mentioned once. So InnoDB native partitioning could be mentioned under either InnoDB or partitioning.
Download MySQL 5.7 GA
or install from Yum, apt or SUSE repo. 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 was 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 this 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 has 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 is 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 is handled same as a view (derived_merge) [1]
- Queries using row value constructors is 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 are 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 characters [1]
- 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, can not login [1]
- mysql.user.password Field renamed asauthentication_string to better describe it current usage.
- Support for tablespace encryption [1]
Performance Schema
- Scalable memory allocation [1]
- Overhead have been reduced in client connect/disconnect phases
- Memory footprint has been reduced
- Pfs_lock implementation has been improved
- Table IO Statistics is 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 are 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
- Multiple triggers per event per table [1]
- before Triggers is not processed for not NULLcolumns [1]
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)
- SYS schema bundled by default [1 2]
- New stored functions and new stored procedures to help understand and interact with performance Schem A and information Schema [1]
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 + (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 has 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 has moved from MyISAM to InnoDB
- Server error log format improved to be consistent
- Extract Query Digest moved from Performance_schema to 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 being configured using multiple NA Mes.
- 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 adds more than 150 new features