昨天,MySQL 5.0.1 Alpha 发布,包含很多新特性,详情请看 Changelog 。
下载:http://dev.mysql.com/downloads/mysql/5.0.1-snapshot.html
News from the ChangeLog:
Functionality added or changed:
* Added support of read only and updateable VIEWs based on single
table or other updateable VIEWs.
* Implemented a new ``greedy search'' optimizer that can
significantly reduce the time spent on optimizing the query in
some many-table joins. (You are affected if not only some
particular SELECT is slow, but even using EXPLAIN for it takes a
noticeable amount of time.) Two new system variables,
optimizer_search_depth and optimizer_prune_level, can be used to
fine-tune optimizer behavior.
* Warning: Incompatible change! C API change: mysql_shutdown() now
requires a second argument. This is a source-level incompatibility
that affects how you compile client programs; it does not affect
the ability of compiled clients to communicate with older servers.
See section "mysql_shutdown()" in the manual.
* A stored procedure is no longer "global" - i.e. it now belongs to a
specific database:
* When a database is dropped, all routines belonging to that
database are also dropped.
* Procedure names may be qualified, e.g. `db.p()'
* When executed from another database an implicit "use db" is
in effect.
* Explicit "use db" is no longer allowed in a stored procedure.
* Fixed SHOW TABLES output field name and values according to
standard. Field name changed from Type to table_type, values are
BASE TABLE, VIEW and ERROR. (Bug #4603)
* Added sql_updatable_view_key system variable.
* Added --replicate-same-server-id server option.
* Added Last_query_cost status variable that reports optimizer cost
for last compiled query.
* Added option --to-last-log to mysqlbinlog, for use in conjunction
with --read-from-remote-server.
* Added --innodb-safe-binlog server option, which adds consistency
guarantees between the content of InnoDB tables and the binary
log. See section "The Binary Log" in the manual.
* OPTIMIZE TABLE for InnoDB tables is now mapped to ALTER TABLE
instead of ANALYZE TABLE.
* sync_frm is now a settable global variable (not only a startup
option).
* For replication of MEMORY (HEAP) tables: Made the master
automatically write a DELETE FROM statement to its binary log when
a MEMORY table is opened for the first time since master's
startup. This is for the case where the slave has replicated a
non-empty MEMORY table, then the master is shut down and
restarted: the table is now empty on master; the DELETE FROM
empties it on slave too. Note that even with this fix, between the
master's restart and the first use of the table on master, the
slave still has out-of-date data in the table. But if you use the
--init-file option to populate the MEMORY table on the master at
startup, it ensures that the failing time interval is zero. (Bug
#2477)
* When a session having open temporary tables terminates, the
statement automatically written to the binary log is now DROP
TEMPORARY TABLE IF EXISTS instead of DROP TEMPORARY TABLE, for
more robustness.
* The MySQL server now returns an error if SET SQL_LOG_BIN is issued
by a user without the SUPER privilege (in previous versions it
just silently ignored the statement in this case).
* Changed that when the MySQL server has binary logging disabled
(that is, no log-bin option was used) then no transaction binlog
cache is allocated for connections (this should save
binlog_cache_size bytes of memory (32 kilobytes by default) for
every connection).
* Added the sync_binlog=N global variable and startup option, which
makes the MySQL server synchronize its binary log to disk
(fdatasync()) after every Nth write to the binary log.
* Changed the slave SQL thread to print less useless error messages
(no more message duplication; no more message when an error is
skipped (because of slave-skip-errors).
* DROP DATABASE IF EXISTS, DROP TABLE IF EXISTS, single-table DELETE
and single-table UPDATE are now written to the binary log even if
they changed nothing on the master (for example, even if the
DELETE matched no row). The old behavior sometimes caused bad
surprises in replication setups.
* Replication and mysqlbinlog now have better support for the case
that the session character set and collation variables are changed
within a given session. See section "Replication Features and Known
Problems" in the manual.