Maria
supports all aspects of
MyISAM
, except as noted below. This includes
external and internal check/repair/compressing of rows, different
row formats, different index compress formats, maria_check etc.
After a normal shutdown one can copy Maria
files between servers.
Advantages of Maria
(Compared to MyISAM
)
Data and indexes are crash safe. On crash, things will
rollback to state of the start of statement or last
LOCK TABLES
commands.
Maria
can replay everything from the log.
Including
CREATE
/DROP
/RENAME
/TRUNCATE
tables.
LOAD INDEX
can skip index
blocks for not wanted indexes
Supports all MyISAM
row formats and the new
transactional format where data is stored in pages.
When using transactional format (default) row data can be cached.
Maria
has unit tests of most parts
Supports both crash safe (soon to be transactional) and not
transactional tables. (Not transactional tables are not logged
and rows uses less space.) CREATE TABLE foo (...)
TRANSACTIONAL=0|1
Transactional is the only crashsafe/transactional row format.
Block format should give a notable speed improvement on systems with bad data caching (for example Windows).
Differences between Maria
and MyISAM
Maria
uses big (1GB by default) log files.
Maria
has a log control file
(maria_log_control
) and log files (
maria_log.????????
). The log files can be
automatically purged when not needed or purged on demand
(after backup).
Maria
uses by default 8K pages for indexes
(MyISAM
1K). Maria
should be faster on static size indexes but slower on variable
length keys (until we add a directory to index pages).
Disadvantages of Maria
(compared to MyISAM
), that will be fixed in
forthcoming releases.
Maria
1.0 has one writer or many readers.
(MyISAM
can have one inserter and many
readers when using concurrent inserts.)
Storage of very small rows (< 25 bytes) is not efficient
for PAGE
format.
In Maria
PAGE
format
there is an overhead of 10 bytes/page and 5 bytes/row.
Transaction and multiple concurrent writer support will use an
additional overhead of 7 bytes for new rows, 14 bytes for
deleted rows and 0 bytes for old compacted rows.
Maria
doesn't support
INSERT DELAYED
.
The maria_page_buffer_size
system variable
that controls the Maria
page cache size is
not dynamically settable like the corresponding
MyISAM
variable,
key_buffer_size
.
Differences that are not likely to be fixed
No external locking (MyISAM
has external
locking, but it is not much used).
Maria
has one page size for both index and
data (defined when Maria
is used first
time). MyISAM
supports different page sizes
per index.
Index requires one extra byte per index page.
Maria
doesn't support RAID (disabled in
MyISAM
too).
Minimum data file size for PAGE
format is
16K (with 8K pages).
User Comments
Add your own comment.