 |

-
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!
|