上一篇 | 下一篇

MySQL中文参考手册---21 怎样对比MySQL与其他数据库

发布: 2008-7-01 11:55 | 作者: admin | 来源: | 查看: 0次

MySQL中文参考手册---21 怎样对比MySQL与其他数据库

【字体:小 大】

MySQL中文参考手册---21 怎样对比MySQL与其他数据库

作者:不详 文章来源:网络 点击数:191 更新时间:2007-1-21

21.1怎样对比MySql与mSQL

这一节由MySql开发者编写,因此应该理智地阅读它,但是没有我们听说的事实错误。

对于所有支持的限制、函数和类型的一个列表,看MySql.com/crash-me-choose.htmy">crash-me网页。性能对于速度的真实比较,请教不断成熟的MySql基准套件。见10.8使用你自己的基准。因为没有线程创建开销、一个较小的语法分析器、较少功能和简单的安全性,mSQL应该在下列方面更快些:执行重复的连接和断开的测试,在每个连接期间运行一个非常简单的查询。有很少的列和键的插入很简单的表的INSERT操作。CREATETABLE和DROPTABLE。在不是一个索引的一些东西上SELECT。(一个表扫描是很容易的。)

因为这些操作是如此简单,当你有更高的启动开销时,很难在这些方面变得更好。在连接被建立以后,MySql应该性能好一些。在另一方面,MySQL比mSQL(以及大多数其他的SQL实现)在下列方面更好些:复杂的SELECT操作。检索较大的结果(MySQL有一个更好、更快并且更安全的协议)。有变长字符串的表,因为MySQL有更有效的并可在VARCHAR列上索引。有很多列的表的处理。由长记录的表的处理。有很多许多表达式的SELECT。在大表上的SELECT。同时处理很多连接。MySQL充分是完全多线程化的,每个连接有它自己的线程,这意味着没有线程必须等待另一个线程(除非一个线程正在修改一张表,另外的线程想要存取)在mSQL中,一旦一个连接被建立了,所有其它线程必须等到第一个线程完成,不管连接正在运行的查询是短的或是长的。当第一个连接终止时,下一个才能工作,而此时所有其它线程再次等待,等等。联结。如果你改变一个SELECT中的表的顺序,mSQL可能变得异常地慢。在基准套件中,比MySQL要慢超过15000倍的时间。这是由于mSQL缺乏一个联结优化器以便以最佳的顺序排定表。然而,如果你把表按完全正确的顺序放在mSQL2中并且WHERE是很简单的并使用索引列,联结将相对快些!见10.8使用你自己的基准。ORDERBY和GROUPBY。DISTINCT。使用TEXT或BLOB列。SQL功能GROUPBY和HAVING。mSQL根本不支持GROUPBY。MySQL支持一个有两个HAVING和下列函数:COUNT()、AVG()、MIN()、MAX()、SUM()和STD()的完整的GROUPBY。如果SELECT从一张表中检索,没有其他列被检索并且没有WHERE子句,COUNT(*)被优化以很快地返回。MIN()和MAX()可以取字符串参数。带计算的INSERT和UPDATE。MySQL能在一个INSERT或UPDATE中做计算。例如:

mysql>UPDATESETx=x*10+yWHEREx<20;别名。MySQL有列的别名。限制列名。在MySQL中,如果一个列名在用于查询的表之间唯一的,你不必须使用完整的合格者。带函数的SELECT。MySQL有很多函数(太多不能在这里列出;见7.4用在SELECT和WHERE子句中的函数)。磁盘空间效率即,你能使你的表有多小?MySQL有很精确的类型,因此你可以创建占据很小空间的表。一个有用的MySQL数据类型的例子是MEDIUMINT,它是3个字节长。如果你有100,000,000个记录,每个记录节省甚至一个字节也是很重要的。mSQL2有一个较有限的列类型集合,因此更难于使表更小。稳定性这较难客观地评价。对于MySQL稳定性的讨论,见1.5MySQL有多么稳定?。我们没有mSQL稳定性的经验,因此我们对此不能说任何东西。价格另一个重要的问题是许可证。MySQL有一个比mSQL更灵活的许可证,并且也不比mSQL昂贵。无论你选择使用哪个产品,记得要至少考虑支付一个许可证或电子邮件支持的费用。(当然如果你把你出售的一个产品包括在MySQL中,你将被要求获得一个许可证。)Perl接口MySQL有与mSQL基本相同Perl接口,当有一些增加的功能。JDBC(Java)MySQL目前有4个JDBC驱动程序:gwe驱动程序:由GWEtechnologies开发的一个Java接口(不再支持)。jms驱动程序:由XiaokunKelvinZHU的开发的一个改进的gwe驱动程序。twz驱动程序:由TerrenceW.Zellers开发的一个type4JDBC驱动程序并用于学习目的。mm驱动程序:由MarkMatthews开发的一个type4JDBC驱动程序。

字号: | 推荐给好友

41/41234>

评分:0

我来说两句