My Sql Engine
MySQL Storage Engines
MySQL is very different from other databases, in that it's storage engine is pluggable, what I mean by this is that the MySQL server core code is separate from the storage engine, which means that you can have a pluggable storage engine that fits your application. MySQL has over 20 storage engines, here is a list of the common ones
MyISAM was the default engine until recently, this engine has been used since MySQL version 3.2, it is a non-transactional engine and does not implement any additional locking mechanisms, this may cause problems when you have a large number of concurrent writes to a table. If your application has a lot of write activity the writes will end up blocking the reads which will cause performance problems, thus you should use either a InnoDB or Falcon engine.
MyISAM has three files associated with it(.MYI for index file , .myd for data file , .frm for format file, because the three files represent a table they can be simply copied to another server and used, however to avoid corruption you should take down mysql server before copying. The other server must have the same endian format as the source server, so you cannot copy from linux X86 server to a Sparc server for instance.
MyISAM has the following features
MySQL is very different from other databases, in that it's storage engine is pluggable, what I mean by this is that the MySQL server core code is separate from the storage engine, which means that you can have a pluggable storage engine that fits your application. MySQL has over 20 storage engines, here is a list of the common ones
Storage Engine |
Transactional Support
|
Locking Level
|
Online Non-blocking Backup
| Server Version(s) available |
InnoDB (default) |
Yes
|
Row
|
Yes
| 5.1, 5.5, 5.6 |
MyISAM/Merge |
No
|
Table
|
No
| 5.1, 5.5, 5.6 |
Memory |
No
|
Table
|
No
| 5.1, 5.5, 5.6 |
Marta |
Yes
|
Row
|
No
| 5.1, 5.5, 5.6 |
Falcon |
Yes
|
Row
|
Yes
| 5.6 |
PBXT |
Yes
|
Row
|
Yes
| 5.1, 5.5, 5.6 |
FEDERATED |
No
|
n/a
|
n/a
| 5.1, 5.5, 5.6 |
NDB |
Yes
|
Row
|
Yes
| 5.1 and available in MySQL Cluster |
Archive |
No
|
Row
|
No
| 5.1, 5.5, 5.6 |
CSV |
No
|
Table
|
No
| 5.1, 5.5, 5.6 |
MyISAM was the default engine until recently, this engine has been used since MySQL version 3.2, it is a non-transactional engine and does not implement any additional locking mechanisms, this may cause problems when you have a large number of concurrent writes to a table. If your application has a lot of write activity the writes will end up blocking the reads which will cause performance problems, thus you should use either a InnoDB or Falcon engine.
MyISAM has three files associated with it(.MYI for index file , .myd for data file , .frm for format file, because the three files represent a table they can be simply copied to another server and used, however to avoid corruption you should take down mysql server before copying. The other server must have the same endian format as the source server, so you cannot copy from linux X86 server to a Sparc server for instance.
MyISAM has the following features
- Non-transactional
- No foreign key support
- FULLTEXT indexes for text matching
- No data cache
- Index caches can be specified by name
- Implements both HASH and BTREE indexes
- Table level locking
- Very fast read activity, suitable for data warehouses
- Compressed data (with myisampack)
- Online backup with mysqlhotcopy
- Maximum of 64 indexes per table
Comments
Post a Comment