mysql5.1里包含了好几种存储引擎(Storage Engine )。性能各有千秋,究竟哪个才是您需要的?
功能列表:
| MyISAM | BDB | Memory | InnoDB | Archive | NDB | |
| 最大数据 | 256TB | No | Yes | 64TB | No | 384EB[4] |
| 事务处理 | No | Yes | No | Yes | No | Yes |
| 锁定级别 | Table | Page | Table | Row | Row | Row |
| 读取快照 | No | No | No | Yes | Yes | No |
| 特殊类型字段支持 | Yes | Yes[1] | No | Yes[1] | Yes[1] | Yes[1] |
| B-tree 索引 | Yes | Yes | Yes | Yes | No | Yes |
| 哈西索引 | No | No | Yes | No | No | Yes |
| 全文搜索 | Yes | No | No | No | No | No |
| 集群索引 | No | Yes | No | Yes | No | No |
| 数据缓存 | No | Yes | N/A | Yes | No | Yes |
| 索引缓存 | Yes | Yes | N/A | Yes | No | Yes |
| 压缩数据 | Yes | No | No | No | Yes | No |
| 加密[2] | Yes | Yes | Yes | Yes | Yes | Yes |
| 集群数据库 | No | No | No | No | No | Yes |
| 复制支持[3] | Yes | Yes | Yes | Yes | Yes | Yes |
| 外键支持 | No | No | No | Yes | No | No |
| 热备份热恢复[3] | Yes | Yes | Yes | Yes | Yes | Yes |
| 结果缓存支持 | Yes | Yes | Yes | Yes | Yes | Yes |
| 字典更新统计 | Yes | Yes | Yes | Yes | Yes | Yes |
注:
[1]支持特殊的数据类型,但不可作为索引
[2] 通过编程在服务器执行,效果远胜于在存储引擎中执行
[3] 在服务器内执行,远胜过在存储引擎中执行
[4] EB = 1024 * 1024TB
其中最常用的非MyISAM莫数。也是mysql下功夫最多的一个引擎了,几乎所有的参数都可以调节。速度超快,适合存储网页数据。类似的还有一个ISAM引擎,但就我看来,它不过是MyISAM的前身为了保证兼容性保留下来的。
Memory首次接触是将php的seesion保存在数据库中,Memory顾名思义,将所有数据保存在内存中,访问速度有所提高,当然关机后数据消失。感觉这个引擎更加体现了mysql的“裸奔原则”,为了速度,能丢弃的全部丢弃。
InnoDB因为有了事务处理和外键支持,很适合做企业数据库。但说老实话,他的速度实在叫人提不起兴趣。支持COMMIT, ROLLBACK, 和 savepoints.
R
BDB,很接近于InnoDB,支持COMMIT 和 ROLLBACK 操作。
NDB,如果你的mysql不得不作集群,这也是不得不选择的引擎。
一个数据库中每个表都可以用不同的引擎,你可以使用“CREATE TABLE engineTest (id INT) ENGINE = MyISAM;” 的方式来创建一个表,同时也可以使用“ALTER TABLE engineTest ENGINE = ARCHIVE;”的方式改变一个表的属性。
| anyShare分享到: | |
| |

近期评论