 |

-
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
nom_table@nom_base_de_donnees or nom_base_de_donnees.nom_table . 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 requêtesunder 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!
|