(mysql.info.gz) Design Limitations
Info Catalog
(mysql.info.gz) Optimize Overview
(mysql.info.gz) Optimize Overview
(mysql.info.gz) Portability
7.1.1 MySQL Design Limitations and Tradeoffs
--------------------------------------------
When using the `MyISAM' storage engine, MySQL uses extremely fast table
locking that allows multiple readers or a single writer. The biggest
problem with this storage engine occurs when you have a steady stream
of mixed updates and slow selects on a single table. If this is a
problem for certain tables, you can use another storage engine for
them. Storage engines.
MySQL can work with both transactional and non-transactional tables.
To be able to work smoothly with non-transactional tables (which can't
roll back if something goes wrong), MySQL has the following rules (when
not running in strict mode or if you use the `IGNORE' specifier to
`INSERT' or `UPDATE').
* All columns have default values.
* If you insert an "incorrect" value in a column, such as a
too-large numeric value into a numeric column, MySQL sets the
column to the "best possible value" instead of giving an error.
For numerical values, this is 0, the smallest possible value or
the largest possible value. For strings, this is either the empty
string or the longest possible string that can be stored in the
column.
* All calculated expressions return a value that can be used instead
of signaling an error condition. For example, 1/0 returns `NULL'.
(This behavior can be changed by using the
`ERROR_FOR_DIVISION_BY_ZERO' SQL mode).
If you are using non-transactional tables, you should not use MySQL to
check column content. In general, the safest (and often fastest) way is
to let the application ensure that it passes only legal values to the
database.
For more information about this, see Constraints and
INSERT or Server SQL mode.
Info Catalog
(mysql.info.gz) Optimize Overview
(mysql.info.gz) Optimize Overview
(mysql.info.gz) Portability
automatically generated byinfo2html