MySQL (mis)features

mysql driver manual: A libdbi driver providing connectivity to MySQL databases using libmysqlclient.
Prev | Chapter 4. Peculiarities you should know about | Next

# 4.1. MySQL (mis)features

- To allow for row seeking, results are loaded into memory. This is very inefficient and may provide a bottleneck for large applications.

- DATETIME, TIMESTAMP, DATE and TIME are all treated as the DBI type DATETIME. This is currently a string, but will change in later releases.

- The DECIMAL type is treated as a string, as it has arbitrary precision.

- The driver per se supports transactions and savepoints and reports this when asked through the dbi_conn_cap_get() function. However, for transactions and savepoints to actually work, several conditions have to be met. First, the database server needs to support transactional table types. Recent versions do have transactional storage engines by default, but they may be switched off during compilation or by runtime configuration. Second, the tables used with transaction or savepoint queries must be of a transactional type. Non-transactional MyISAM tables have been replaced by transactional InnoDB tables as default table type no earlier than in MySQL version 5.5.5. If you intend to use transactions and savepoints, make sure to select an appropriate engine type like InnoDB explicitly in each CREATE TABLE statement.

Prev | Home | Next
Peculiarities you should know about | Up | GNU Free Documentation License