开放源代码数据库系统之比较
SQL99的一部分功能。MySQL虽然使用的比较普遍,但是许多数据库应该有的功能并不支持。起初的MySQL是不支持事务操作的。众所周知,不支持事务操作的数据库不能称为完整的数据库系统。为了弥补这一不足,他们引入Berkeley DB[5]和InnoDB[6]到他们的数据库系统系统中。所以目前的MySQL的六种表类型中有两种支持事务操作的表类型BDB, InnoDB,还有四种不支持事务的表类型 (HEAP, ISAM, MERGE, and MyISAM)。InnoDB支持事务原子操作,行级别的锁,破坏后的恢复,多版本控制,外码支持等机制,它比仅支持事务操作的Berkeley DB功能要强。尽管MySQL引入了InnoDB,目前它对存储过程、嵌套查询、视图、触发器等数据库基本功能还是不支持的。 4.2. 支持的数据类型
这四种数据库都支持常用的数据类型、如整数、单双精浮点数、定点数、日期时间、定长字符串、变长字符串、大对象等等。除此之外MySQL还支持集合Set和枚举Enum类型;PostgreSQL支持许多几何类型和网络地址类型;PostgreSQL和SAPDB还支持序列Sequence和布尔类型。 4.3. 中文支持
我们还研究了这四种数据库对中文的支持情况:
MySQL需要修改character_set变量为gb2312。两种方法修改,一种是在Linux编译配置时加入参数 --with-charset= gb2312;或者在MySQL启动时设定 –default-character-set = gb2312。这样数据库名、表名、字段名、数据内容就都可以为中文。
PostgreSQL不用设置用户名、表名、字段名、数据库名、数据内容都可以是中文。
SAPDB用户名,表名,字段名,都可以是中文,但数据库名不可以是中文。这一切都需要在创建数据库实例是设置参数_UNICODE = YES
InterBase用户名、数据库名、字段名、数据内容都可以使用中文,但是表名不可以。我们建议使用英文的数据库名和字段名。
4.4. 编程接口
表2列出了四种数据库支持的编程接口。
ODBCJDBC PHP Perl C C++ TCL 嵌入SQL
支持 支持 支持 支持 支持 支持 支持 /
支持 支持 支持 支持
支持 第三方 支持 支持 支持 第三方 支持 第三方
支持支持 支持支持 支持 支持
支持 第三方 支持 支持
支持第三方
Python 支持
表2
5. 大数据量测试结果 我们使用AS3AP标准对这四种数据库进行了测试比较,测试分为单用户测试和多用户测试,具体的测试结果参看[10]。单用户连接下,我们发现:
1. 没有那个数据库绝对快,每个数据库都
有自己的优势。SAPDB插入的速度要快于其他的数据库,但是它建立表和删除表的速度要比其他的慢;PostgreSQL的连接速度比其他的慢;MySQL在索引的建立和删除上速度比其他的要慢;InterBase在各方面都比较快。
2. MySQL的MyISAM类型的表要比InnoDB
快,InnoDB又比Berkeley DB快。 3. MySQL的MyISAM类型的表由于没有事
务处理要比其它数据库快一些。
4. PostgreSQL有两种运行模式fsync和
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库开放源代码数据库系统之比较(3)在线全文阅读。
相关推荐: