Sun欲对MySQL进行性能调整 |
本文标签:Sun MySQL 据“Java之父” James Gosling透露,Sun公司将不会为MySQL数据库引入一种新的API(应用编程接口),而是很有可能对MySQL做更多的调整工作 。 在悉尼的Sun公司的科技日上,Gosling说现在很多工具都是使用JDBC来连接数据库,使用API让SQL语句得以执行,这些使用方式很常用,因此,Sun将不会为MySQL开发一种特殊的API 。 他还说:“许多人喜欢MySQL,但是他们同样喜欢数据库具备通用性……如果哪一天,你所在的IT部门突然说,‘No,你必须使用Oracle数据库’,那时你该如何是好呢?” 。 因此,Gosling说Sun将会为MySQL的JDBC驱动做更多的调整,同样对MySQL做一些改变,能够让它运行在不同的体系结构中 。Sun将会集中精力调整的一种体系结构就是Niagara 2 处理器(Niagara 2处理器维持八个核心,但每个核心可跑八条线程) 。 Gosling称数据库如果跑在这些共享内存多处理器的机子上,会有令人吃惊的性能 。 Sun对Mysql究竟会做哪些改进工作,业界一直猜疑不断 。因为Mysql数据库相比很多商业数据库,还缺乏很多开发者和数据库管理员喜欢的功能 。看来Sun首先希望做的就是,让MySQL能够更好地跑在自己的服务器和架构上,使得Mysql能够更好地跻身核心和关键应用 。 资料: MySQL,出自瑞典小公司MySQL公司的开放源码的数据库软件,目前对数据库老牌厂商Oracle, IBM, Microsoft 以及 Sybase等公司产生威胁 。 MySQL公司目前在同时开发两个版本的软件,4.1版以及5.0版 。4.1版本的代码已经发布并有望在8个月后公布最终代码 。而5.0版本的最后产品将在6个月后发布 。 之所以说可以在绝大多数情况下免费使用,MySQL可以说是一个半商业的数据库 。 MySQL是可运行在大多数的Linux平台(i386,Sparc,etc),以及少许非Linux甚至非Unix平台 。 MySQL的普及很大程度上源于它的宽松,除了略显不寻常的许可费用 。MySQL的价格随平台和安装方式变化 。MySQL的Windows版本(NT和9X)在任何情况下都不免费,而任何Unix变种(包括Linux)的MySQL如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方案庄则必须付许可费 。 平台 安装方式 价格 可以在MySQL站点上获得大多数主要的软件包格式(RPM、DBE、TGZ),客户端库和各种语言“包装”(Wrapper)可以分开的RPM格式获得 。RPM格式的安装没有多大麻烦,并且无需初始配置 。在rc3.d(以RedHat RPM为例)生成一个初始脚本,故MySQL守护进程在多用户模式下重启时被启动运行 。MySQL的守护进程(mysqld)消耗很少的内存(在运行RedHat 5.1的奔腾133上,每个守护进程使用500K内存和另外4M共享内存的开销)并在只有在执行真正的查询时才装载到处理器上,这意味着对小型数据库来说,MySQL可以相当轻松地使用而不会对其他系统功能有太大的影响 。 字段支持大量数据类型是件好事 。通常的整数、浮点数、字符串和数字均以多种长度表示,并支持变长的BLOB(Binary Large OBject)类型 。对整数字段由自动增量选项,日期时间字段也能很好的表示 。 MySQL包含一些与SQL标准不同的转变,他们的大多数被设计成是对SQL语言脚本语言的不足的一种补偿 。然而,另一些扩展确实使 MySQL与众不同,例如,LINK子句搜索是自动地忽略大小写的 。MySQL 也允许用户自定义的SQL函数,换句话说,一个程序员可以编写一个函数然后集成到MySQL中,并且其表现的与任何基本函数如SUM()或AVG ()没有什么不同 。函数必须被编译道一个共享库文件中(.so文件),然后用一个LOAD FUNCTION命令装载 。 没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制 。多语句SQL命令必须通过客户方代码来协调,这种情形是借助于相当健全的查询语言和赋予客户端锁定和解锁表的能力,这样才允许的多语句运行 。 MySQL的主要的缺陷之一是缺乏标准的RI机制;然而,MySQL的创造者也不是对其用户的愿望置若罔闻,并且提供了一些解决办法 。其中之一是支持唯一索引 。Rule限制的缺乏(在给钉字段域上的一种固定的范围限制)通过大量的数据类型来补偿 。不简单地提供检查约束(一个字段相对于同一行的另一个字段的之值的限制)、外部关键字和经常与RI相关的“级联删除”功能 。有趣的是,当不支持这些功能时,SQL分析器容忍这些语句的句法 。这样做目的是易于移植数据库到MySQL中 。这是一个很好的尝试,并且它确实未来支持该功能留下方便之门;然而,那些没有仔细阅读文档的的人可能误以为这些功能实际上是存在的 。 自始至终我对MySQL最大的抱怨是其安全系统,它唯一的缺点是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变 。通常的SQL GRANT/REVOKE 语句到最近的版本才被支持,但是至少他们现在有了 。 MySQL的编写者广泛地记载了其特定的安全性系统,但是它确实需要一条可能是别无它法的学习过程 。 强制参考一致性的缺乏显著地简化备份和恢复,单靠数据导入/导出就可完美复制这一功能 。LOAD DATA INFILE命令给了数据导入很大的灵活性 。SELECT INTO命令实现了数据导出的相等功能 。另外,既然MySQL不使用原始的分区,所有的数据库数据能用一个文件系统备份保存 。数据库活动能被记载 。与通常的数据库日志不同(存储记录变化或在记录映像之前/之后), MySQL记载实际的SQL语句 。这允许数据库被恢复到失败前的那一点,但是不允许提交(commit)和回卷(rollback)操作. MySQL客户库是客户/服务器结构的C语言库,它意味着一个客户能查询驻留在另一台机器的一个数据库 。然而MySQL真正的强项处于该库中的语言“包装器(wrapper)”, Perl、Pathon和PHP只是一部分 。Apache的Web服务器也有许多模块例如目录存取文件等允许各种各样的Apache配置信息(例如目录存取文件)使用MySQL,应用程序接口简单、一致并且相但完整 。另外、多平台ODBC驱动程序可自由获得 。 MySQL的开发继续以快速进行着 。事实上,开发步伐对大多数开放源代码是一种挑战 。本文提到的几个抱怨中有很多新功能正在解决,然而,我将不对还没确实存在的特征做评价 。开发者们向我表明了在未来的开发中把增加查询功能和提高查询速度作为最高优先级 。 Mysql是数据库领域的中间派 。它缺乏一个全功能数据库的大多数主要特征,但是又有比类似Xbase记录存储引擎更多的特征 。它象企业级RDBMS那样需要一个积极的服务者守护程序,但是不能象他们那样消费资源 。查询语言允许复杂的连接(join)查询,但是所有的参考完整必须由程序员强制保证 。 |