Copyright (C) 2000-2012 |
GNU Info (mysql.info)News-3.22.0Changes in release 3.22.0 ------------------------- * New (backward compatible) connect protocol that allows you to specify the database to use when connecting, to get much faster connections to a specific database. The `mysql_real_connect()' call is changed to: mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, uint port, const char *unix_socket, uint client_flag) * Each connection is handled by its own thread, rather than by the master `accept()' thread. This fixes permanently the telnet bug that was a topic on the mail list some time ago. * All TCP/IP connections are now checked with backward resolution of the hostname to get better security. `mysqld' now has a local hostname resolver cache so connections should actually be faster than before, even with this feature. * A site automatically will be blocked from future connections if someone repeatedly connects with an "improper header" (like when one uses telnet). * You can now refer to tables in different databases with references of the form `tbl_name@db_name' or `db_name.tbl_name'. This makes it possible to give a user read access to some tables and write access to others simply by keeping them in different databases! * Added `--user' option to `mysqld', to allow it to run as another Unix user (if it is started as the Unix `root' user). * Added caching of users and access rights (for faster access rights checking) * Normal users (not anonymous ones) can change their password with `mysqladmin password 'new_password''. This uses encrypted passwords that are not logged in the normal MySQL log! * All important string functions are now coded in assembler for x86 Linux machines. This gives a speedup of 10% in many cases. * For tables that have many columns, the column names are now hashed for much faster column name lookup (this will speed up some benchmark tests a lot!) * Some benchmarks are changed to get better individual timing. (Some loops were so short that a specific test took < 2 seconds. The loops have been changed to take about 20 seconds to make it easier to compare different databases. A test that took 1-2 seconds before now takes 11-24 seconds, which is much better) * Re-arranged `SELECT' code to handle some very specific queries involving group functions (like `COUNT(*)') without a `GROUP BY' but with `HAVING'. The following now works: mysql> SELECT count(*) as C FROM table HAVING C > 1; * Changed the protocol for field functions to be faster and avoid some calls to `malloc()'. * Added `-T32' option to `mysqld', for running all queries under the main thread. This makes it possible to debug `mysqld' under Linux with `gdb'! * Added optimization of `not_null_column IS NULL' (needed for some Access queries). * Allow `STRAIGHT_JOIN' to be used between two tables to force the optimizer to join them in a specific order. * String functions now return `VARCHAR' rather than `CHAR' and the column type is now `VARCHAR' for fields saved as `VARCHAR'. This should make the *MyODBC* driver better, but may break some old MySQL clients that don't handle `FIELD_TYPE_VARCHAR' the same way as `FIELD_TYPE_CHAR'. * `CREATE INDEX' and `DROP INDEX' are now implemented through `ALTER TABLE'. `CREATE TABLE' is still the recommended (fast) way to create indexes. * Added `--set-variable' option `wait_timeout' to `mysqld'. * Added time column to `mysqladmin processlist' to show how long a query has taken or how long a thread has slept. * Added lots of new variables to `show variables' and some new to `show status'. * Added new type `YEAR'. `YEAR' is stored in 1 byte with allowable values of 0, and 1901 to 2155. * Added new `DATE' type that is stored in 3 bytes rather than 4 bytes. All new tables are created with the new date type if you don't use the `--old-protocol' option to `mysqld'. * Fixed bug in record caches; for some queries, you could get `Error from table handler: #' on some operating systems. * Added `--enable-assembler' option to `configure', for x86 machines (tested on Linux + `gcc'). This will enable assembler functions for the most important string functions for more speed! automatically generated by info2www version 1.2.2.9 |