オリジナル版:http://lists.mysql.com/announce/1015
MySQL 5.7.8(マイルストーンリリース)は世界でもっともポピュラーなオープンソースデータベースの新しいバージョンです。これはMySQL 5.7の8番目のマイルストーンリリースです。
このリリースの新機能はベータ品質です。他のプロダクションリリース前と同様にプロダクションレベルのシステムやクリティカルなデータを持つシステムにインストールする場合には十分に注意すべきです。
MySQL 5.7.8はMySQL 5.6のすべての機能を含んでいます。さらに、5.7の独自の機能として以下を実装しています。
・InnoDB、オプティマイザの性能向上
・オンラインでALTER文の実行が可能に
・マルチソースレプリケーション(マスタ:スレーブ=N:1)
詳細は以下のリンクから確認することが出来ます。
http://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html
MySQL 5.7.8は、ダウンロード・ページの開発リリースセクションから、ソースコードと多くのプラットフォームのためのバイナリをご利用いただけます。
(※MySQL 5.7.8で利用できるプラットフォームとパッケージのフォーマットはMySQL 5.6と同じです)
http://dev.mysql.com/downloads/
MySQL 5.7.8をインストールする場合は、以下のMySQLのインストールドキュメントを参照してください。
http://dev.mysql.com/doc/refman/5.7/en/installing.html
WindowsパッケージはWindowsインストーラーのための新しいインストーラ、もしくはZIP(ノンインストール)パッケージが利用いただけます。以前のMSIパッケージはもう利用できず、ポイントアンドクリック設定ウィザードと全てのMySQL製品でWindows向けの統一インストーラが利用可能です。
http://dev.mysql.com/downloads/installer/
また、私たちはフィードバック、バグレポート、バグ修正パッチ等を歓迎します
http://bugs.mysql.com/report.php
次の節では、MySQL 5.7.8の変更を記載しています。これはオンラインでも閲覧できます。
http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-8.html
Changes in MySQL 5.7.8 (2015-08-03, Release Candidate)
Note
This is a release candidate, for use at your own risk.
Significant development changes take place in release candidate
releases and you may encounter compatibility issues, such as
data format changes that require attention in addition to the
usual procedure of running mysql_upgrade. For example, you
may find it necessary to dump your data with mysqldump before
the upgrade and reload it afterward.
This release adds support for Debian 8 and Ubuntu 15.04.
* Account Management Notes
* Backup Notes
* Configuration Notes
* JSON Notes
* Optimizer Notes
* Packaging Notes
* Performance Schema Notes
* Plugin Notes
* Security Notes
* Spatial Data Support
* SQL Mode Notes
* Functionality Added or Changed
* Bugs Fixed
Account Management Notes
* The maximum length of MySQL user names has been increased
from 16 characters to 32 characters, which provides
greater flexibility in choosing the user name part of
MySQL account names. The change affects permitted user
names in these contexts:
+ Account-management statements, such as CREATE USER,
GRANT, REVOKE, and SHOW GRANTS.
+ Statements that support a DEFINER clause, such as
CREATE PROCEDURE and CREATE VIEW.
+ Other statements with clauses that contain user
names, such as CHANGE MASTER TO and CREATE SERVER.
+ Columns that store user names in mysql system
database, INFORMATION_SCHEMA, and Performance Schema
tables have been widened to accommodate 32
characters.
There are no changes in the client/server protocol, which
exchanges user names as null-terminated strings. However,
third-party programs that use this protocol to
communicate may need to be modified if they use or store
user names based on the assumption of 16 characters
maximum.
The increase in maximum user name length has implications
for MySQL administration:
+ Replication implication: Replication of user names
longer than 16 characters to a slave that supports
only shorter user names will fail. However, this
should occur only when replicating from a newer
master to an older slave, which is not a recommended
configuration.
+ Downgrade implication: If a newer server supports
any accounts with a user name longer than 16
characters, downgrades to an older version of MySQL
that supports only shorter names is not possible.
If you upgrade to this MySQL release from an earlier
version, you must run mysql_upgrade (and restart the
server) to incorporate this change in user name length.
* The CREATE USER statement now supports an IF NOT EXISTS
clause that causes the statement to produce a warning for
each named account that already exists, rather than an
error. The ALTER USER and DROP USER statements now
support an IF EXISTS clause that cause the statements to
produce a warning for each named account that does not
exist, rather than an error. For details, see CREATE USER
Syntax
(http://dev.mysql.com/doc/refman/5.7/en/create-user.html),
ALTER USER Syntax
(http://dev.mysql.com/doc/refman/5.7/en/alter-user.html),
and DROP USER Syntax
(http://dev.mysql.com/doc/refman/5.7/en/drop-user.html).
These statement variants can be useful in replication
scenarios when the set of accounts differs between master
and slave. They also permit scripting account-management
operations that otherwise would terminate for statement
errors.
Backup Notes
* A new client program, mysqlpump, provides an alternative
to mysqldump. Significant mysqlpump features include:
+ Parallel processing of databases, and of objects
within databases, to speed up the dump process
+ For dump file reloading, faster secondary index
creation for InnoDB tables by adding indexes after
rows are inserted
+ Better control over which databases and database
objects (tables, views, stored programs, user
accounts) to dump
+ Dumping of user accounts as account-management
statements (CREATE USER, GRANT) rather than as
inserts into the mysql system database
+ Capability of creating compressed output
+ Progress indicator
For more information, see mysqlpump --- A Database Backup
Program
(http://dev.mysql.com/doc/refman/5.7/en/mysqlpump.html).
Configuration Notes
* The default configuration for systemd now sets
LimitNOFILE to 5000 to increase the number of file
descriptors available to the MySQL server. This change
applies to Linux systems on which MySQL installation is
performed using RPM packages. On such systems, the number
of descriptors available is often set by the operating
system to 1024. The change causes the number of
descriptors to match the --open-files-limit option
default value of 5000. To configure a different number of
descriptors, set LimitNOFILE as described at Managing
MySQL Server with systemd
(http://dev.mysql.com/doc/refman/5.7/en/server-management-using-systemd.html).
(Bug #21073014)
JSON Notes
* MySQL now supports a native JSON data type that enables
efficient access to data in JSON (JavaScript Object
Notation) documents. The JSON data type provides these
advantages over storing JSON-format strings in a string
column:
+ Automatic validation of JSON documents stored in
JSON columns. Invalid documents produce an error.
+ Optimized storage format. JSON documents stored in
JSON columns are converted to an internal format
that permits efficient access to document elements.
Along with the JSON data type, a set of SQL functions is
available to enable operations on JSON values, such as
creation, manipulation, and searching. In addition, the
CONVERT() and CAST() functions can convert values between
JSON and other types.
For more information, see The JSON Data Type
(http://dev.mysql.com/doc/refman/5.7/en/json.html), and
JSON Functions
(http://dev.mysql.com/doc/refman/5.7/en/json-functions.html).
Optimizer Notes
* The optimizer now is able to use indexes on generated
columns, even when queries do not refer to such columns
directly by name. The optimizer recognizes query
expressions that match definitions of generated columns
and uses indexes from those columns as appropriate during
query execution. For details, see Optimizer Use of
Generated Column Indexes
(http://dev.mysql.com/doc/refman/5.7/en/generated-column-index-optimizations.html).
* The optimizer hint capability introduced in MySQL 5.7.7
has been expanded to subquery execution strategies.
Subquery hints affect whether to use semi-join
transformations and which semi-join strategies to permit,
and, when semi-joins are not used, whether to use
subquery materialization or IN-to-EXISTS transformations.
Examples:
SELECT /*+ SEMIJOIN(FIRSTMATCH, LOOSESCAN) */ * FROM t1 ...;
SELECT id, a IN (SELECT /*+ SUBQUERY(MATERIALIZATION) */ a
FROM t1)
FROM t2;
SELECT * FROM t2 WHERE t2.a IN (SELECT /*+
SUBQUERY(INTOEXISTS) */ a
FROM t1);
For more information, see Subquery Optimizer Hints
(http://dev.mysql.com/doc/refman/5.7/en/optimizer-hints.html#optimizer-hints-subquery).
There is also a new duplicateweedout flag for the
optimizer_switch system variable. This flag enables use
of optimizer_switch to specify whether to use the
Duplicate Weedout semi-join strategy, which was not
previously possible.
* The optimizer cost model has a new memory_block_read_cost
parameter in the mysql.engine_cost table representing the
cost of reading an index or data block from an in-memory
database buffer.
Together with the existing io_block_read_cost parameter
representing the cost of reading a block from disk, this
change enables cost models for data access methods to
take into account the costs of reading information from
different sources; that is, the cost of reading
information from disk versus reading information already
in a memory buffer. For the initial implementation, the
default value of memory_block_read_cost is the same as
io_block_read_cost. Tuning the values remains as future
work, although you can change the values to see how that
affects query performance. For more information, see The
Optimizer Cost Model
(http://dev.mysql.com/doc/refman/5.7/en/cost-model.html).
If you upgrade to this MySQL release from an earlier
version, you must run mysql_upgrade (and restart the
server) to incorporate this change into the mysql
database.
Packaging Notes
* For Windows, the MSI installer package no longer includes
debugging binaries/information components (including PDB
files). These are available in a separate Zip archive
named mysql-VERSION-winx64-debug-test.zip for 64-bit and
mysql-VERSION-win32-debug-test.zip for 32-bit. (Bug
#18296012)
Performance Schema Notes
* Current-event timing now provides more information.
Previously, while a wait, stage, statement, or
transaction event was executing, the respective tables
displayed the event with TIMER_START populated, but with
TIMER_END and TIMER_WAIT as NULL:
events_waits_current
events_stages_current
events_statements_current
events_transactions_current
To make it possible to determine how how long a
not-yet-completed event has been running, the timer
columns now are set as follows:
+ TIMER_START is populated (unchanged from previous
behavior)
+ TIMER_END is populated with the current timer value
+ TIMER_WAIT is populated with the time elapsed so far
(TIMER_END − TIMER_START)
To find events that have not yet completed (that is, have
no END_EVENT_ID) and have taken longer than N picoseconds
thus far, monitoring applications can use this expression
in queries:
WHERE END_EVENT_ID IS NULL AND TIMER_WAIT > N
(Bug #75156, Bug #20889406)
* The Performance Schema incorporates these changes:
+ The show_compatibility_56 system variable default
value, previously ON, has been changed to OFF.
Applications that require 5.6 behavior should set
this variable to ON until such time as they have
been migrated to the new behavior for system
variables and status variables. See Migrating to
Performance Schema Variable Tables
(http://dev.mysql.com/doc/refman/5.7/en/performance-schema-variable-table-migration.html)
+ When the Performance Schema session variable tables
produced output, they included no rows for
global-only variables and thus did not fully reflect
all variable values in effect for the current
session. This has been corrected so that each table
has a row for each session variable, and a row for
each global variable that has no session
counterpart. This change applies to the
session_variables and session_status tables.
+ It is no longer required that the
show_compatibility_56 system variable be OFF for the
Performance Schema system variable tables to produce
output. The tables now produce output regardless of
the variable value. This change applies to the
global_variables, session_variables, and
variables_by_thread tables.
+ WHERE clauses for SHOW VARIABLES and SHOW STATUS
were deprecated in MySQL 5.7.6. This restriction has
been lifted so that WHERE is supported as before
5.7.6.
+ The metadata_locks table now displays tablespace
locks. Rows for these locks have an OBJECT_TYPE
value of TABLESPACE.
+ The Performance Schema logs wait, stage, statement,
and transaction events in these history tables:
events_waits_history
events_waits_history_long
events_stages_history
events_stages_history_long
events_statements_history
events_statements_history_long
events_transactions_history
events_transactions_history_long
Previously, historical event logging was controlled
entirely by enabling or disabling history-related
consumers in the setup_consumers table. These flags
are global to the server, with the result that
historical data was collected either for all threads
or no threads.
The Performance Schema now uses history consumers in
conjunction with the setup_actors table to make it
possible to control collection of historical events
per host, user, or account (combination of host and
user). This table has a new HISTORY column that
indicates whether to collect historical events
(subject also to which history consumers are
enabled), and each new foreground thread is matched
against rows in the table. If a matching row is
found, its HISTORY value is recorded in the row for
the thread in the threads table, which also now has
a HISTORY column.
Enabling historical event logging for a given
session can be done independent of enabling
instrumentation for it. Consequently, you can
control more precisely what events are logged in
history tables, with these advantages:
o A decrease in runtime overhead when historical
data is needed only for a subset of the
instrumented sessions.
o A reduction of noise in the history tables,
facilitating troubleshooting on busy servers
that generate a large number of events.
For more information, see Pre-Filtering by Thread
(http://dev.mysql.com/doc/refman/5.7/en/performance-schema-pre-filtering.html#performance-schema-thread-filtering),
The setup_actors Table
(http://dev.mysql.com/doc/refman/5.7/en/setup-actors-table.html),
and The threads Table
(http://dev.mysql.com/doc/refman/5.7/en/threads-table.html).
+ The threads table now contains a CONNECTION_TYPE
column that indicates the connection protocol. It
can be used to determine how the connection was
made. Permitted values are TCP/IP (TCP/IP connection
established without SSL), SSL/TLS (TCP/IP connection
established with SSL), Socket (Unix socket file
connection), Named Pipe (Windows named pipe
connection), and Shared Memory (Windows shared
memory connection).
Connection-type information is also written to the
general query log for new connections, and the audit
log interface was revised to incorporate the
connection type.
For more information, see The threads Table
(http://dev.mysql.com/doc/refman/5.7/en/threads-table.html),
The General Query Log
(http://dev.mysql.com/doc/refman/5.7/en/query-log.html),
and Writing Audit Plugins
(http://dev.mysql.com/doc/refman/5.7/en/writing-audit-plugins.html).
If you upgrade to this MySQL release from an earlier
version, you must run mysql_upgrade (and restart the
server) to incorporate these changes into the
performance_schema database.
References: See also Bug #20652173, Bug #20684424, Bug
#20811494.
Plugin Notes
* These changes were made for the Rewriter query rewrite
plugin (see The Rewriter Query Rewrite Plugin
(http://dev.mysql.com/doc/refman/5.7/en/rewriter-query-rewrite-plugin.html):
+ There is now a single installation script,
install_rewriter.sql. Previously, there were two
installation scripts, install_rewriter.sql and
install_rewriter_with_optional_columns.sql, which
differed in whether they created the pattern_digest
and normalized_columns columns of the rewrite_rules
table. install_rewriter.sql now always creates those
columns, so there is no need for
install_rewriter_with_optional_columns.sql.
+ The enabled column of the rewrite_rules table is now
defined as ENUM('YES,'NO') rather than as CHAR(1).
Correspondingly, to enable a rule, set this column
to YES rather than Y.
To upgrade if you have previously installed the Rewriter
plugin, uninstall it by running the uninstallation script
first, then run the installation script. After
reinstalling, load your rewrite rules again (this is
necessary because uninstalling drops the rules table).
For instructions, see Installing the Rewriter Query
Rewrite Plugin
(http://dev.mysql.com/doc/refman/5.7/en/rewriter-query-rewrite-plugin.html#rewriter-query-rewrite-plugin-installation).
Security Notes
* Community Edition RPM packages now invoke
mysql_ssl_rsa_setup during installation to create default
SSL and RSA key and certificate files. (Bug #20855737)
* A new system variable, require_secure_transport, enables
administrators to require all client connections to the
server to be made using some form of secure transport.
Qualifying connections are those that use SSL, a socket
file (on Unix), or shared memory (on Windows). When this
variable is enabled, the server rejects nonsecure
connection attempts, which fail with an
ER_SECURE_TRANSPORT_REQUIRED error.
This capability supplements per-account SSL requirements,
which take precedence. For example, if an account is
defined with REQUIRE SSL, enabling
require_secure_transport does not make it possible to use
the account to connect using a Unix socket file.
Spatial Data Support
* ST_NumInteriorRing() was added as more a
standard-compliant alias of ST_NumInteriorRings(). (Bug
#21362781)
* All spatial computations now are done using
Boost.Geometry functions. All older non-Boost-based
algorithms have been removed. (Bug #21300713)
* Geometry constructor functions that take WKT or WKB
values (such as ST_GeomFromText() and ST_GeomFromWKB())
did not check for trailing garbage bytes. They now reject
trailing nonwhitespace characters and produce an error.
(Bug #21198064)
* The required version of the Boost library for server
builds has been raised from 1.57.0 to 1.58.0. (Bug
#20721087)
* Geometry object constructor functions such as Point() and
MultiPolygon() now are stricter about rejecting invalid
arguments. (Bug #20712775)
SQL Mode Notes
* In MySQL 5.7.4, the ERROR_FOR_DIVISION_BY_ZERO,
NO_ZERO_DATE, and NO_ZERO_IN_DATE SQL modes were changed
so that they did nothing when named explicitly. Instead,
their effects were included in the effects of strict SQL
mode (STRICT_ALL_TABLES or STRICT_TRANS_TABLES). The
intent was to reduce the number of SQL modes with an
effect dependent on strict mode and make them part of
strict mode itself.
However, the change to make strict mode more strict by
including ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and
NO_ZERO_IN_DATE caused some problems. For example, in
MySQL 5.6 with strict mode but not NO_ZERO_DATE enabled,
TIMESTAMP columns can be defined with DEFAULT '0000-00-00
00:00:00'. In MySQL 5.7.4 with the same mode settings,
strict mode includes the effect of NO_ZERO_DATE and
TIMESTAMP columns cannot be defined with DEFAULT
'0000-00-00 00:00:00'. This causes replication of CREATE
TABLE statements from 5.6 to 5.7.4 to fail if they
contain such TIMESTAMP columns.
The long term plan is still to have the three affected
modes be included in strict SQL mode and to remove them
as explicit modes in a future MySQL release. But to
restore compatibility in MySQL 5.7 with MySQL 5.6 strict
mode and to provide additional time for affected
applications to be modified, the following changes have
been made:
+ ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and
NO_ZERO_IN_DATE again have an effect when named
explicitly. This reverts a change made in MySQL
5.7.4.
+ ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and
NO_ZERO_IN_DATE are no longer part of strict SQL
mode. This reverts a change made in MySQL 5.7.4.
+ ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and
NO_ZERO_IN_DATE are now included in the default
sql_mode value, which as a result includes these
modes: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE, NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, and
NO_ENGINE_SUBSTITUTION.
With the preceding changes, stricter data checking is
still enabled by default, but the individual modes can be
disabled in environments where it is currently desirable
or necessary to do so.
Although ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and
NO_ZERO_IN_DATE again can be used separately from strict
mode, it is intended that they be used together. As a
reminder, a warning now occurs if they are enabled
without also enabling strict mode or vice versa.
References: See also Bug #75439, Bug #20367829.
Functionality Added or Changed
* InnoDB: The adaptive hash index search system is now
partitioned, with each index bound to a specific
partition, and each partition protected by a separate
latch. Partitioning is controlled by the
innodb_adaptive_hash_index_parts configuration option.
Prior to MySQL 5.7.8, the adaptive hash index search
system was protected by a single latch (btr_search_latch)
which could become a point of contention. To reduce
contention, innodb_adaptive_hash_index_parts is set to 8
by default. The maximum setting is 512. (Bug #20985298)
* InnoDB: The new innodb_log_checksum_algorithm option
specifies how to generate and verify the checksum stored
in redo log disk blocks. innodb_log_checksum_algorithm
supports same algorithms as innodb_checksum_algorithm,
which include innodb, crc32, none, and their associated
strict forms. Previously, only the innodb algorithm was
supported for redo log disk blocks.
innodb_log_checksum_algorithm=innodb is the default
setting. Thanks to Laurynas Biveinis for the patch. (Bug
#20531208, Bug #75595)
* InnoDB: InnoDB now supports page-level compression for
file-per-table tablespaces. Page compression is enabled
by specifying the COMPRESSION attribute when creating or
altering a table. Supported compression algorithms
include Zlib and LZ4. This feature, which is referred to
as transparent page compression, relies on sparse file
and hole punching support. It is supported on Windows
with NTFS, and on the following subset of MySQL-supported
Linux platforms where the kernel level provides hole
punching support:
+ RHEL 7 and derived distributions that use kernel
version 3.10.0-123 or higher
+ OEL 5.10 (UEK2) kernel version 2.6.39 or higher
+ OEL 6.5 (UEK3) kernel version 3.8.13 or higher
+ OEL 7.0 kernel version 3.8.13 or higher
+ SLE11 kernel version 3.0-x
+ SLE12 kernel version 3.12-x
+ OES11 kernel version 3.0-x
+ Ubuntu 14.0.4 LTS kernel version 3.13 or higher
+ Ubuntu 12.0.4 LTS kernel version 3.2 or higher
+ Debian 7 kernel version 3.2 or higher
All of the available file systems for a given Linux
distribution may not support hole punching.
For more information about this feature, see InnoDB Page
Compression
(http://dev.mysql.com/doc/refman/5.7/en/innodb-page-compression.html).
* InnoDB: The new innodb_flush_sync configuration option,
which is enabled by default, causes the
innodb_io_capacity setting to be ignored for bursts of
I/O activity that occur at checkpoints. To adhere to the
limit on InnoDB background I/O activity defined by the
innodb_io_capacity setting, disable innodb_flush_sync.
* InnoDB: The default value for innodb_purge_threads and
innodb_page_cleaners was changed from 1 to 4. If the
number of page cleaner threads exceeds the number of
buffer pool instances, innodb_page_cleaners is
automatically set to the same value as
innodb_buffer_pool_instances.
* InnoDB: Internal server-layer functions were added to
allow InnoDB purge threads to construct and destroy
thread handle objects, and to compute virtual generated
column index values when a table object is not present.
This enhancement was required to support secondary
indexes on virtual generated columns.
* InnoDB: InnoDB now supports secondary indexes on virtual
generated columns. For more information, see CREATE TABLE
and Generated Columns
(http://dev.mysql.com/doc/refman/5.7/en/create-table.html#create-table-generated-columns).
* InnoDB: Virtual generated column values no longer occupy
space in database rows. With this change, a table rebuild
is no longer required when adding or dropping virtual
generated columns.
Virtual generated columns are still represented in InnoDB
metadata. The N_COLS field of INNODB_SYS_TABLES still
counts virtual generated columns, and INNODB_SYS_COLUMNS
still includes virtual generated column metadata.
A new INFORMATION_SCHEMA table, INNODB_SYS_VIRTUAL,
provides metadata about columns upon which virtual
generated columns are based.
* Replication: The behavior of SET GTID_PURGED has been
changed so that it does not add any GTIDs to
Previous_gtids_log_event and does not rotate the binary
log. Instead the GTIDs are added to the
mysql.gtid_executed table. This fix ensures that it is
safe in all cases to use binlog_gtid_simple_recovery=1
for a server using MySQL 5.7.8 or later, where all binary
logs were generated by servers using MySQL 5.7.8 or
later. (Bug #75767, Bug #20470724)
* Replication: When using a multi-threaded slave, each
worker thread has its own queue of transactions to
process. In previous MySQL versions, STOP SLAVE waited
for all workers to process their entire queue. This logic
has been changed so that STOP SLAVE first finds the
newest transaction that was committed by any worker
thread. Then, it waits for all workers to complete
transactions older than that. Newer transactions are not
processed. The new logic allows STOP SLAVE to complete
faster in case some worker queues contain multiple
transactions. (Bug #75525, Bug #20369401)
* The patch number of the C client library is now increased
for each patch version of the server. This number has the
format major.minor.patch. (Bug #21341481)
* The max_statement_time system variable was renamed to
max_execution_time. The Max_statement_time_exceeded,
Max_statement_time_set, and Max_statement_time_set_failed
status variables were renamed to
Max_execution_time_exceeded, Max_execution_time_set, and
Max_execution_time_set_failed.
The MAX_STATEMENT_TIME option for SELECT statements was
removed because its functionality is now available using
the more general optimizer hint syntax (see Optimizer
Hints
(http://dev.mysql.com/doc/refman/5.7/en/optimizer-hints.html)).
Statements that begin like this:
SELECT MAX_STATEMENT_TIME = N ...
Should be rewritten to begin like this:
SELECT /*+ MAX_EXECUTION_TIME(N) */ ...
There are some minor implementation differences between
the two. MAX_STATEMENT_TIME was not permitted in
non-top-level SELECT statements such as subqueries, or in
stored programs, and produced an error.
MAX_EXECUTION_TIME() is permitted in those contexts, but
is ignored. (Bug #21306646, Bug #21306392, Bug #21306319)
* GeometryCollection() with no arguments is now permitted
as a way to create an empty geometry. (Bug #21127270)
* Solaris tarball and PKG distributions no longer have -gcc
in the distribution file names. (Bug #21047137)
* Previously, the max_digest_length system variable
controlled the maximum digest length for all server
functions that computed statement digests. However,
whereas the Performance Schema may need to maintain many
digest values, other server functions such as query
rewrite plugins need only one digest per session.
Increasing the max_digest_length value has little impact
on total memory requirements for those functions, but can
increase Performance Schema memory requirements
significantly. To enable configuring digest length
separately for the Performance Schema, its digest length
is now controlled by the new
performance_schema_max_digest_length system variable.
(Bug #20963147)
* Use of the optimizer cost model was extended to
estimating index scan costs within
test_if_cheaper_ordering() for the I/O cost of accessing
table blocks. (Bug #20947871)
* mysqldump no longer dumps the sys schema by default. It
is still possible to dump it by naming it explicitly on
the command line (for example, mysqldump --databases
sys). (Bug #20902791)
* For non-TCP/IP connections, these changes were made when
--ssl was specified to force SSL to be used:
+ For named pipe and shared memory connections,
attempts to use SSL now produce an error because
these connections use non-network protocols.
+ For Unix socket file connections, SSL does not add
any security. The connection is permitted, but the
mysql client now produces a warning that SSL does
not add anything for this connection protocol.
(Bug #20785409, Bug #21025587)
* The server now prints more descriptive diagnostic
messages for bad values of secure_file_priv. (Bug
#20771331)
* The libmysqld embedded server took its default
secure_file_priv value from the
INSTALL_SECURE_FILE_PRIVDIR CMake option, but cannot
share the same directory with a non-embedded server. The
new INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR option enables a
separate directory to be specified for libmysqld. The
default value is NULL. (Bug #20770671)
* mysql_ssl_rsa_setup now has a --uid=name option that
enables specifying the owner for any files created by the
program (if the program is executed as root). (Bug
#20726413)
* my_print_defaults now masks passwords. To display
passwords in cleartext, use the new --show option. In
addition, The output for client programs invoked with the
--print-defaults option now masks passwords. (Bug
#19953365, Bug #20903330)
* For attempts to create a multiple-column SPATIAL index,
the server previously returned an "Incorrect arguments to
SPATIAL INDEX" error. Now it returns
ER_TOO_MANY_KEY_PARTS ("Too many key parts specified; max
1 parts allowed"). (Bug #18320371)
* For tables that contain object information, the
Performance Schema now uses lowercase stored program
names. (Bug #17818062)
* To make the effect of password-change operations more
clear, mysql_secure_installation now displays the user
whose password is being changed. (Bug #17343687)
* The shutdown timeout value in /etc/init.d/mysqld was too
short for some environments. The value has been increased
from 60 seconds to 600 seconds. (Bug #76900, Bug
#20987568)
* For MySQL install operations on OS X from DMG packages,
if a a random root account password is generated, it now
is displayed in a dialog box. (Bug #76792, Bug #20930305)
* MySQL distributions now include an innodb_stress suite of
test cases. Thanks to Mark Callaghan for the
contribution. (Bug #76347, Bug #20717127)
* The data type for generated columns now permits the
COLLATE attribute. (Bug #76329, Bug #20709487)
* Connections for the FEDERATED storage engine now set the
program_name session connection attribute to federated to
permit identification of the connection source. (Bug
#68781, Bug #16555730)
* Previously, changes to the validate_password plugin
dictionary file (named by the
validate_password_dictionary_file system variable) while
the server was running required a restart for the server
to recognize the changes. Now
validate_password_dictionary_file can be set at runtime
and assigning a value causes the named file to be read
without a restart.
In addition, two new status variables are available.
validate_password_dictionary_file_last_parsed indicates
when the dictionary file was last read, and
validate_password_dictionary_file_words_count indicates
how many words it contains. (Bug #66697, Bug #14588145)
* The error produced for a COM_FIELD_LIST command with too
much data was changed from ER_UNKNOWN_COM_ERROR to the
more informative ER_MALFORMED_PACKET. (Bug #53699, Bug
#11761229)
* MySQL distributions no longer include the sql-bench
directory. The INSTALL_SQLBENCHDIR CMake option has also
been removed.
References: See also Bug #21303289.
* The so-called "fast mutex" code has been removed from the
server sources. It provides no measurable benefit,
complicates the code, and is problematic for certain
architectures such as POWER8. The (undocumented)
WITH_FAST_MUTEXES CMake option has also been removed.
References: See also Bug #37703, Bug #11748914, Bug
#72806, Bug #18871517, Bug #72807, Bug #18871138, Bug
#72805, Bug #18870931.
* Work was done to clean up the source code base,
including: Removal of unneeded CMake checks; removing
unused macros from source files; reorganizing header
files to reduce the number of dependencies and make them
more modular, removal of function declarations without
definitions.
* The read_only system variable enables the server to be
put into read-only mode, in which the server permits
client updates only from users who have the SUPER
privilege. A new super_read_only system variable, if
enabled, prohibits client updates even from users who
have SUPER. "Super" read-only mode can be useful for
operations such as preparing a server for a move or
upgrade because it prevents all client users from
modifying data, even administrators.
* mysqld_safe no longer uses the data directory as a
possible location for setting MYSQL_HOME. (This has been
deprecated since MySQL 5.0.)
* A new system variable, disabled_storage_engines, enables
administrators to designate storage engines that cannot
be used to create new tables or tablespaces. By default,
this variable is empty (no engines disabled), but it can
be set to a comma-separated list of one or more engines.
Any engine named in the value cannot be used to create
tables or tablespaces with CREATE TABLE or CREATE
TABLESPACE, and cannot be used with ALTER TABLE ...
ENGINE or ALTER TABLESPACE ... ENGINE to change the
storage engine of existing tables or tablespaces.
Attempts to do so result in an ER_DISABLED_STORAGE_ENGINE
error.
disabled_storage_engines does not restrict other DDL
statements for existing tables, such as CREATE INDEX,
TRUNCATE TABLE, ANALYZE TABLE, DROP TABLE, or DROP
TABLESPACE. This permits a smooth transition so that
existing tables or tablespaces that use a disabled engine
can be migrated to a permitted engine by means such as
ALTER TABLE ... ENGINE permitted_engine.
* The default value of the table_open_cache_instances
system variable has been increased from 1 to 16.
Bugs Fixed
* Incompatible Change: Internal storage format for VIRTUAL
generated columns was modified. For MyISAM tables with
such columns, this is an incompatible change; for
upgrades, use ALTER TABLE to drop the columns before the
upgrade and add them again after the upgrade. (Bug
#21237637)
* Incompatible Change: The mysql_parser plugin service
interface defined in the service_parser.h header file was
incorrect for the case that the MYSQL_DYNAMIC_PLUGIN
macro was defined. The test for this symbol used the
wrong name, so the interface did not enable the proper
code. The test has been corrected, and some adjustments
made to the API for function pointer members within the
mysql_parser_service_st structure:
+ Some function pointer names began with
mysql_parser_, others with mysql_. For consistency,
function pointer member names that began with
mysql_parser_ were changed to begin with mysql_.
+ The missing mysql_get_statement_digest function
pointer member was added.
These modifications change the service API. Any plugin to
be used with this version of MySQL that relies on the
service must be recompiled. (Bug #20856729)
* InnoDB; Partitioning: In certain rare cases the optimizer
pruned all partitions for an InnoDB table but failed to
remove the table from consideration as a source for
obtaining matches, instead calling for the table to be
initialized and prepared for fetching records. This
occurred when the active index was not set during
initialization. To fix this problem, we now set the
active index ID during initialization even if there are
no partitions to select from. This behavior also matches
the way the same case is already handled in MySQL 5.6.
(Bug #21211524)
* InnoDB; Partitioning: Sorted index reads on partitioned
InnoDB tables added rows to the prefetch cache, which
could cause rows from the wrong partition since the
prefetch cache does not support partitioned tables. Now
the the prefetch cache is disabled in such cases. (Bug
#20584754)
ここに掲載しているのは修正点の一部となります。
詳しくは以下のリンクをご参照ください。
http://lists.mysql.com/announce/1015
http://lists.mysql.com/announce/1014
http://lists.mysql.com/announce/1013