MySQL 5.6, 5.7, 8.0 version of the new features Daquan

For MySQL's history, I believe many people already familiar with, do not repeat them here. Here only from the perspective of product characteristics combing milestone of its development process.

In 1995, MySQL 1.0 release for internal use only.

In 1996, MySQL 3.11.1 release, skip the MySQL 2.x version.

In 1999, MySQL AB was founded. In the same year, released MySQL 3.23, this version incorporates Berkeley DB storage engine. The engine developed by the company Sleepycat, support transactions. In the engine of integration process, the source code has been transformed, it laid the foundation for the subsequent pluggable storage engine architecture.

In 2000, ISAM to MyISAM storage engine upgrade. In the same year, MySQL under the GPL open-source agreement.

In 2002, MySQL 4.0 release, integrating later famous InnoDB storage engine. The engine was developed by Innobase company, supports transactions, supports row-level locking for high concurrency OLTP scene.

In 2008, Sun at 10 billion US dollars acquisition of MySQL AB. In the same year, released MySQL 5.1, it began to support a timer (Event scheduler), partitions, and other characteristics based replication line.

In 2009, Oracle to 7.4 billion dollars acquisition of Sun Microsystems.

In 2010, MySQL 5.5 release, which includes the following key features and updates.

  • MySQL InnoDB instead of MyISAM become the default storage engine.
  • Polynuclear expansion can be more fully multi-core CPU.
  • InnoDB's performance, including support for the rapid creation of the index, the table compression performance I / O subsystem of the lift, the PURGE operation of peeling from the main thread, Buffer Pool be split into a plurality of Instances.
  • Semi-synchronous replication.
  • Introducing utf8mb4 character set can be used to store emoji expression.
  • Introducing metadata locks (lock metadata).
  • Enhanced partition table, two new partition types: RANGE COLUMNS and LIST COLUMNS.
  • MySQL Enterprise introduction thread pool.
  • Number (innodb_read_io_threads, innodb_write_io_threads) can be configured to read and write IO thread. Prior to this, the number is 1, and non-configurable.
  • The introduction of innodb_io_capacity options to control the number of dirty pages refresh.


2013, MySQL 5.6 release, which includes the following key features and updates.

  • GTID copy.
  • Lossless copy.
  • Delay replication.
  • Copy Parallel library level.
  • mysqlbinlog can be remote backup binlog.
  • For TIME, DATETIME and TIMESTAMP been restructured to support fractional seconds. DATETIME space requirement is reduced from 8 bytes to 5 bytes before.
  • Online DDL. ALTER operation is no longer blocking DML.
  • Transportable tablespaces (transportable tablespaces).
  • Persistent statistics. After avoiding between master and slave, or restart the database, there is a difference with the SQL execution plan.
  • Full-text indexing.
  • InnoDB Memcached plugin。
  • EXPLAIN can be used to view the execution plan DELETE, INSERT, REPLACE, UPDATE DML operations, etc., before this, only supports SELECT operations.
  • Reinforcing the partition table, including increasing the number of the maximum available partition 8192 to support the exchange of data between partitions and non-partitioned tables, partitions explicitly specify operation.
  • Redo Log total size limit extended from the previous 4G to 512G.
  • Undo Log table can be stored in a separate space, because the IO is random, more suitable place in the SSD. But still does not support automatic recovery space.
  • The state can dump and load Buffer pool, avoiding the need to restart the database after a long warm-up time.
  • InnoDB performance inside the lift, comprising a split kernel mutex, the thread of Independent refresh, purge may be provided a plurality of threads.
  • Optimizer performance, the introduction of ICP, MRR, BKA and other features, optimized for sub-queries.

It can be said, MySQL 5.6 is a milestone in the history of MySQL version, which is currently the most widely used application on the production version.

2015, MySQL 5.7 release, which includes the following key features and updates.

  • Group Copy
  • InnoDB Cluster
  • Multi-source copy
  • Enhanced semi-synchronous (AFTER_SYNC)
  • Parallel copy WRITESET based.
  • Online open GTID copy.
  • Online set up replication filtering rules.
  • Online modify the size of Buffer pool.
  • At the same length encoded bytes, to modify the size of VARCHAR modify metadata table only, without creating a temporary table.
  • NUMA architecture can set the memory allocation strategy (innodb_numa_interleave).
  • Transparent page compression (Transparent Page Compression).
  • UNDO table space automatic recovery.
  • Query optimizer reconstruction and enhancement.
  • To view SQL execution plan (EXPLAIN FOR CONNECTION) currently being executed.
  • The introduction of plug-in query rewrite (Query Rewrite Plugin), the query can be rewritten on the server.
  • EXPLAIN FORMAT = JSON displays cost information, this can directly compare the two execution plans merits.
  • The introduction of virtual column, similar to the function of the index in Oracle.
  • The new instance is no longer the default user to create test databases and anonymous.
  • Introducing ALTER USER command can be used to modify user password expiration policies, password, and lock users.
  • mysql.user table stored password from the password field is modified authentication_string.
  • Table space encryption.
  • Optimized Performance Schema, reducing its memory usage.
  • Performance Schema introduces a number of instrumentation. Commonly used with Memory usage instrumentation, MySQL can be used to view memory usage, Metadata Locking Instrumentation, can be used to view the MDL holdings, Stage Progress instrumentation, can be used to view the progress of the Online DDL.
  • The same trigger event (INSERT, DELETE, UPDATE), the same trigger time (BEFORE, AFTER), allows the creation of multiple triggers. Prior to this, only allows the creation of a trigger.
  • InnoDB native support for the partition table, before that, the interface is implemented by ha_partition.
  • Partition Table support transportable table space properties.
  • SYS integrated database, MySQL simplifies the management and abnormal positioning problem.
  • Native support for JSON types, and introduces a number of JSON functions.
  • It introduces a new logical backup tool -mysqlpump, to support table-level multi-threaded backup.
  • Introduces new client tools -mysqlsh, it supports three languages: the Java Script, and SQL. Two kinds of API: X DevAPI, AdminAPI, wherein, the former may be operated as document MySQL database, which is used to manage InnoDB Cluster.
  • mysql_install_db mysqld --initialize be replaced, for instance to initialize.
  • Native support systemd.
  • Introduced super_read_only options.
  • Long (the max_execution_time) may be provided when a timeout SELECT operation.
  • Examples can be closed by MySQL SHUTDOWN command.
  • Innodb_deadlock_detect options introduced under high concurrency scenarios, this option can be used to turn off the deadlock detection.
  • Introduced Optimizer Hints, can be controlled at the statement level optimizer behavior, such as whether to open the ICP, MRR, etc., before this, only Index Hints.
  • GIS enhancements, including the use of GIS algorithm before Boost.Geometry alternative, InnoDB began to support spatial index.

2018, MySQL 8.0 release, which includes the following key features and updates.

  • Introduces native, based on the InnoDB data dictionary. Data dictionary tables are located in mysql database, invisible to the user, like any other system tables mysql database, save the file in mysql.ibd data directory. No longer placed under mysql directory.
  • Atomic DDL。
  • Reconstruction of the INFORMATION_SCHEMA, wherein the parts table is reconstructed based on the view data dictionary, before which a temporary table.
  • PERFORMANCE_SCHEMA query performance, it has built multiple indexes.
  • Invisible index (Invisible index).
  • Descending index.
  • Histogram.
  • Common table expressions (Common table expressions).
  • Window function (Window functions).
  • Role (Role).
  • Resource Group (Resource Groups), can be used to control the resources and the priority of the thread can be used, at present, can only manage the resources CPU.
  • Introduced innodb_dedicated_server option can be set dynamically innodb_buffer_pool_size, innodb_log_file_size and innodb_flush_method memory-based server.
  • Quick plus column (ALGORITHM = INSTANT).
  • The JSON fields are updated (JSON Partial Updates).
  • Auto-increment primary key persistence.
  • Be persistent global variables (SET PERSIST).
  • Modify the default character set latin1 to utf8mb4.
  • UNDO table space enabled by default, and the number of online support adjustment (innodb_undo_tablespaces). In MySQL 5.7, the default is not open, to open, it can only be set during initialization.
  • Backup lock.
  • Redo Log optimization, comprising a plurality of user threads allows concurrent writes log buffer, you can dynamically change the size of innodb_log_buffer_size.
  • The default authentication plug-in changes to the mysql_native_password caching_sha2_password.
  • The default memory temporary table changed from MEMORY engines TempTable engine, compared to the former, the latter supports variable-length stored VARCHAR, VARBINARY and other variable-length fields. Starting MySQL 8.0.13, TempTable engine support for BLOB fields.
  • Grant is no longer implicitly created user.
  • Statement introducing SELECT ... FOR SHARE and SELECT ... FOR UPDATE NOWAIT and SKIP LOCKED option to solve the electricity problem hot line business scene.
  • Regular expression enhancements, the new four-correlation function, REGEXP_INSTR (), REGEXP_LIKE (), REGEXP_REPLACE (), REGEXP_SUBSTR ().
  • The query optimizer in the development of the implementation plan, will consider whether the data in the Buffer Pool. Before that, the assumption that data on disk.
  • ha_partition the interface layer is removed from the code, if the partition table to be used, only the InnoDB storage engine.
  • The introduction of more fine-grained permissions to replace the SUPER privilege, now granted the SUPER privilege will prompt warning.
  • GROUP BY statement is no longer an implicit order.
  • MySQL 5.7 tablespace encryption features introduced encrypts Redo Log and Undo Log.
  • The innodb_locks information_schema and innodb_lock_waits table is removed, replaced by the data_locks performance_schema and data_lock_waits table.
  • The introduction of performance_schema.variables_info table, record the origin and the revision of parameters.
  • Increased statistics (performance_schema.events_errors_summary_xxx) for a client error messages.
  • Statistical query response time distribution (call sys.ps_statement_avg_latency_histogram ()).
  • Support directly modifying the column name (ALTER TABLE ... RENAME COLUMN old_name TO new_name).
  • User passwords can be set to retry strategy (Reuse Policy).
  • Remove PASSWORD () function. This means not through "SET PASSWORD ... = PASSWORD ( 'auth_string')" command to change the user's password.
  • Code Query Cache module layer is removed, so that the relevant variables and operators Query Cache are no longer supported.
  • BLOB, TEXT, GEOMETRY and JSON field allows to set defaults.
  • You can restart the MySQL instance through the RESTART command.

It should be noted that the above-mentioned publication, generally refers to the GA version.

Finally, look at the following table, the table shows the recent release of several big time, and as of this book is published, the latest version of its small release time.

From the data in the table view,

1. probably will release a major version every three years.

2. Product Support cycle is generally eight years.

3. that MySQL 5.5 is old as the hills, but officials still constantly updated.

Guess you like

Origin www.linuxidc.com/Linux/2019-09/160664.htm