分享

MySQL 中三种数据表的对比

 david.tao 2006-09-27
从我的经验谈谈MyISAM、InnoDB、BDB三种数据表的优缺点


http://hknng./hknng/archive.php/article/114.html

MyISAM
优点:速度快,磁盘空间占用少;某个库或表的磁盘占用情况既可以通过操作系统查相应的文件(夹)的大小得知,也可以通过SQL语句SHOW TABLE STATUS查得
缺点:没有数据完整性机制,即不支持事务和外键

InnoDB
优点:支持事务和外键,数据完整性机制比较完备;可以用SHOW TABLE STATUS查得某个库或表的磁盘占用
缺点:速度超慢,磁盘空间占用多;所有库都存于一个(通常情况)或数个文件中,无法通过操作系统了解某个库或表的占用空间

BDB
优点:支持事务,不支持外键,由于在事务支持的基础上,外键可以在数据库的客户端(可能是最终客户的服务器端,例如php)间接实现,所以数据完整性仍然是有保障的;
缺点:速度慢,磁盘占用多;不能通过SHOW TABLE STATUS查询某个库或表的空间占用;用操作系统可了解库相应的文件夹,或表相应的文件的大小,但由于BDB表总是还要产生log文件,而实际的磁盘占用应该把log文件也包含在内,所以用操作系统查得某库或表的大小总是小于实际占用空间。


最早开始做SMCCom,看上了InnoDB的完美的数据完整性。微量数据测试时,是看不出它的蜗牛速度的,直到某日导入猪窝的数据库(帖子3万余条记录)测试,就原形毕露了。

但是继续倾向于向数据完整性寻求解决,于是又尝试BDB。经过与MyISAM的速度对比,发现相差不大,于是就投入测试。

直到今天发现BDB的磁盘占用比MyISAM要大约2倍,考虑到网站转成UTF-8编码后数据量又要增加1/2左右,而数据查询和更新请求非常稀疏,于是决定转用MyISAM了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多