InnoDB Tables
InnoDB now supports ALTER TABLE DROP FOREIGN KEY. You have to use
SHOW CREATE TABLE to find the internally generated foreign key ID
when you want to drop a foreign key.
SHOW INNODB STATUS now prints detailed information of the latest
detected FOREIGN KEY and UNIQUE KEY errors. If you do not understand
why InnoDB gives the error 150 from a CREATE TABLE, you can use
this statement to study the reason.
ANALYZE TABLE now works also for InnoDB type tables. It makes 10
random dives to each of the index trees and updates index cardinality
estimates accordingly. Note that since it is only an estimate,
repeated runs of ANALYZE TABLE may produce different numbers. MySQL
uses index cardinality estimates only in join optimisation. If some
join is not optimised in the right way, you may try using ANALYZE TABLE.
InnoDB group commit capability now works also when MySQL
binlogging is switched on. There have to be > 2 client threads
for the group commit to become active.
innodb_flush_log_at_trx_commit from
0 to 1. If you have not specified it explicitly in your `my.cnf',
and your application runs much slower with this new release, it
is because the value 1 causes a log flush to disk at each transaction
commit.
innodb_max_dirty_pages_pct. It is an integer in the range 0 - 100.
The default is 90. The main thread in InnoDB tries to flush pages
from the buffer pool so that at most this many percents are not yet
flushed at any time.
innodb_force_recovery=6, do not let InnoDB do repair of corrupt
pages based on the doublewrite buffer.
InnoDB start-up now happens faster because it does not set the
memory in the buffer pool to zero.
InnoDB parser for FOREIGN KEY definitions was
confused by the keywords 'foreign key' inside MySQL comments.
FOREIGN
KEY reference, and later created the same table with non-matching
column types, InnoDB could assert in `dict0load.c', in function
dict_load_table().
GROUP BY and DISTINCT could treat NULL
values as not equal.
MySQL also failed to do the next-key locking in the case of an
empty index range.
CREATE TABLE not to commit an
InnoDB transaction, even when binlogging is enabled.
ON DELETE SET NULL to modify the same
table where the delete was made; we can allow it because that cannot
produce infinite loops in cascaded operations.
HANDLER PREV and NEXT also after positioning
the cursor with a unique search on the primary key.
MIN() or MAX() resulted in a deadlock or a lock
wait timeout, MySQL did not return an error, but returned NULL as the
function value.
InnoDB forgot to call pthread_mutex_destroy() when
a table was dropped. That could cause memory leakage on FreeBSD
and other non-Linux Unix systems.
| Posted by Marina on Monday June 9 2003, @12:24pm | [Delete] [Edit] |
Can't wait to be able to create a single FK on multiple columns.
Thank you.