GNU Info

Info Node: (mysql.info)News-3.22.0

(mysql.info)News-3.22.0


Prev: News-3.22.1 Up: News-3.22.x
Enter node , (file) or (file)node

Changes 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