Go to the first, previous, next, last section, table of contents.
Everything in this list is in the order it will be done. If you want to
affect the priority order, please register a license or support us and
tell us what you want to have done more quickly. See section 3 Licensing or When do I have/want to pay for MySQL?.
-
Delayed inserts for log tables.
-
Subqueries.
'select id from t where grp in (select grp from g where u > 100)
-
Optimize some queries to only use indexes.
-
FreeBSD and MIT-pthreads; Do sleeping threads take CPU?
-
Allow join on key parts (optimizing issue).
-
Fix that temporary HEAP tables are automatically converted to NISAM if
they get too big. At the moment one gets 'error 135' or 'Table xxx is full'
if one does a query which has to use a big temporary table.
-
Binary portable data tables (a new version of ISAM).
-
Add
DISTINCT qualifier to COUNT() , SUM() ...
-
Change conv_blob to handle
BLOB as a TEXT field.
-
Entry for
DECRYPT() .
-
Remember
FOREIGN key definitions in the `.frm' file.
-
Server side cursors.
-
Don't add automatic
DEFAULT values to columns. Give an error when using
an INSERT that doesn't contain a column that doesn't have a
DEFAULT .
-
Caching of queries and results. This should be done as a separated
module that examines each query and if this is query is in the cache
the cached result should be returned. When one updates a table one
should remove as few queries as possible from the cache.
This should give a big speed bost on machines with much ram where
queries are often repeated (like www applications).
One idea would be to only cache queries of type:
SELECT CACHED ....
-
Fix `libmysql.c' to allow two
mysql_query() commands in a row
without reading results or give a nice error message when one does this.
-
Optimize
BIT type to take 1 bit (now BIT takes 1 char).
-
Check why MIT-pthreads
ctime() doesn't work on some FreeBSD systems.
-
Check if locked threads take any CPU.
-
Add
ORDER BY to update. This would be handy with functions like:
generate_id(start,step) .
-
Add an
IMAGE option to LOAD DATA INFILE to not update
TIMESTAMP and AUTO_INCREMENT fields.
-
Make
LOAD DATA INFILE understand a syntax like:
LOAD DATA INFILE 'file_name.txt' INTO TABLE table_name
TEXT_FIELDS (text_field1, text_field2, text_field3)
SET table_field1=concatenate(text_field1, text_field2), table_field3=23
IGNORE text_field3
-
Allow strings with
MIN() , MAX() (not group functions).
These should be synonyms for LEAST() , GREATEST() .
-
Demo procedure: analyze
-
Automatic output from
mysql to netscape.
-
LOCK DATABASES . (with various options)
-
NATURAL JOIN .
-
Change sort to allocate memory in 'hunks' to get better memory utilization.
-
DECIMAL and NUMERIC types can't read exponential numbers;
Field_decimal::store(const char *from,uint len) must be recoded
to fix this.
-
Add ANSI SQL
EXTRACT function.
-
Fix
mysql.cc to do fewer malloc() calls when hashing field
names.
-
Add functions:
MAKE_SET(set_bits,'aaa,bbb,ccc,ddd,eee") -> Returns a set string.
MAKE_SET(1 | 8, 'aaa,bbb,ccc,ddd,eee") -> 'aaa,ddd'
EXPORT_SET(set_column,'Y','N',[separator],[number_of_set_values])
where separator is ',' by default and
number_of_set_values is taken from the set_column (or is
64 if set_column is an expression). For example:
EXPORT_SET(9,'Y','N',',',5) -> Y,N,N,Y,N
-
Add use of
t1 JOIN t2 ON ... and t1 JOIN t2 USING ...
Currently, you can only use this syntax with LEFT JOIN .
-
Add full support for
unsigned long long type.
-
A
LOCK DATABASE function (for backups).
-
Function
CASE .
-
Much more variables for
show status . Counts for:
INSERT /DELETE /UPDATE statements. Records reads and updated.
Selects on 1 table and selects with joins. Mean number of tables in
select. Key buffer read/write hits (logical and real).
ORDER BY , GROUP BY , temporary tables created.
-
If you abort
mysql in the middle of a query, you should open
another connection and kill the old running query.
Alternatively, an attempt should be made to detect this in the server.
-
Add a handler interface for table information so you can use it as a system
table. This would be a bit slow if you requested information about all tables,
but very flexible.
SHOW INFO FROM tbl_name for basic table information
should be implemented.
-
Adabas insert syntax:
INSERT INTO TABLE SET col1=expr,col2=expr,col3=expr...
-
Allow
mysqld to support many character sets at the same time.
-
Add optimization to make
LEFT JOIN .. WHERE not_null_field IS NULL much
faster. (This is often used to find rows that doesn't match)
Time is given according to amount of work, not real time. TcX's main
business is the use of MySQL not the development of it. But
since TcX is a very flexible company, we have put a lot of resources
into the development of MySQL.
-
Transactions with rollback (we mainly do
SELECT s, and because we don't
do transactions, we can be much quicker on everything else). We will
support some kind of atomic operations on multiple tables,
though. Currently atomic operations can be done with LOCK
TABLES /UNLOCK TABLES but we will make this more automatic in the
future.
Go to the first, previous, next, last section, table of contents.
|