当前位置: 首页 > 图文教程 > 网络编程 > PHP > 从4.0到5.1 为什么MySQL却被冠名"玩具数据库"

PHP
真正面向对象编程:PHP5.01发布
Zend公司全球首推PHP认证
使用MaxMind 根据IP地址对访问者定位
动态网站web开发 PHP、ASP还是ASP.NET
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
PHP的一个完整SMTP类(解决邮件服务器需要验证时的问题)
提升PHP执行速度全攻略(上)
两种php调用Java对象的方法
PHP开发文件系统实例讲解
如何使用动态共享对象的模式来安装PHP
PHP编程网上资源导航
PHP安全编程之加密功能
PHP使用者状态管理功能的应用
用IE远程创建Mysql数据库的简易程序
phpBB BBcode处理的漏洞
一个目录遍历函数
生成缩略图
模拟xcopy的函数
PHP 中执行系统外部命令
PHP输出控制功能在简繁体转换中的应用

PHP 中的 从4.0到5.1 为什么MySQL却被冠名"玩具数据库"


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 108 ::
收藏到网摘: n/a

  MySQL从开发人员手中的“玩具”变为如今的“世界上最流行的开源数据库”,其中的过程伴随着产品版本升级,以及一些新功能(特别是企业数据库功能)的增加。现在,随着MySQL 5.0被完美地开发出来,已经很少有人将MySQL称为“玩具数据库”了。MySQL的丰富功能满足了许多用户的需求,Oracle最近的动作表明了他们对待MySQL非常重视——Oracle曾几次三番的表示有意收购MySQL。

  MySQL的产品路线图
  让我们先从MySQL的较有影响的版本产品开始,看一下MySQL的更新换代。

  MySQL 4.0
  MySQL 4.0是在2003年3月发布的,该版本使新的基于MySQL的应用程序获得了更广泛的应用。但是在4.0版中,MySQL不支持存储过程、触发程序、服务器端指针或视图。MySQL 4.0是从3.23发展而来,较之3.23版本有了很大的提高,主要适用于Web站点,这时候的MySQL还不是一个企业级数据库。
  以下是MySQL 4.0的主要新特性:
  FULLTEXT索引:最值得用户期待的可能就是FULLTEXT索引。
  FULLTEXT在文本字段创建索引,为对该索引执行布尔搜索提供了一个强大而灵活的机制。依照一般的开发经验,开发人员通常必须创建索引并访问文本数据,而FULLTEXT索引比想象中的还要好得多。
  许多解决方案仅限于全字索引,FULLTEXT索引没有这种限制,允许开发人员添加或拆分词组。
  ANSI SQL UNION:支持ANSI SQL UNION语句,该语句将询问结果汇集到一个结果集。
  多表操作:可以执行多表UPDATE和DELETE。
  新语句:增加了其他DBMS用户所熟悉的一些非标准的新语句(如IDENTITY和TRUNCATE TABLE),以及FOUND_ROWS()等新功能,这些功能可以返回无需LIMIT子句就能返回的纪录的编号。
  InnoDB存储引擎:InnoDB存储引擎在当时作为服务器的标准特性,在4.0版本中成为一个附加选项。InnoDb是允许ACID兼容事务的表类型,而非默认的MyISAM表类型,它可以加快一般性使用的速度,但对于关键操作不是十分有用。
  InnoDB表使用行级别锁定特性,这意味着对一个记录的更新只锁定该记录,而不是整个表。当选择访问大量的数据库时(对于大多数Web站点而言),锁定整个表相当快,但是当插入和更新的数量接近于选项的数量时,则速度较慢。长期以来,对MySQL的批评一直集中在MyISAM表的安全性和一致性问题,兼容ACID的InnoDB表在解决这些问题上走过了很长一段路。
  查询缓存:MySQL 4.0在某些情况下可以更快捷。这主要通过查询缓存得以实现,它将重复的查询结果存储起来,使速度得以提高,尽管许多成熟的应用程序在某个代码级别上执行自己的查询缓存功能。某些语句在速度上也有所提高。
  Embededded Server:MySQL 4.0附带了一个Embededded Server库,允许应用程序以MySQL作为底层数据库。
  latin1_de :MySQL 4.0支持一个额外字符集latin1_de,它可确保正确存储德语单词。
  MyISAM:MySQL 4.0中的MyISAM表目前在表级别上支持符号链接,所以Windows用户可以在表级别上创建符号链接(这对于Unix用户始终有效)。
  安全模型:MySQL 4.0的安全模型得到了增强,允许管理员更加细致地授权许可。新的权限允许用户创建临时表、锁定表、执行某些复制任务、查看所有现有的数据库,甚至在达到最大连接限度时还能进行连接——对于DBA执行紧急任务非常有用,甚至允许运行存储过程(在MySQL 5中实现了此功能)。DBA依靠增强的安全模式也可以限制用户每小时的连接、更新或查询次数。
  MySQL 4设计运行在Novell Netware 6.0之上。另外,MySQL服务器变量中有不少可以在不重新启动服务器的情况下进行更改,由于重新启动会恢复旧的设置,因此这个特性非常有用。

  MySQL 4.1
  MySQL 4.1推出之后,对于某些用户而言,4.1比MySQL 4.0具有更激动人心的升级可能:
  MySQL 4.1支持子查询。
 
  不使用子查询时,许多查询可以更有效地编写,但是会有例外。子查询是标准ANSI SQL特性。
  支持Unicode (UTF-8),允许更广泛地进行国际化。
  每个列、表或数据库都可以设置不同的字符集,如果以多种语言存储数据,这就很有必要了。
  支持地理数据(OpenGIS)。
  增强的警告发送。如果一个不够,MySQL 4.1可以将多个警告发送到客户端,这样就对于整体数据处理十分有用。
  提高了一些速度。但这些速度提高可能被MySQL 4.1所承担的所有额外部分抵消。
  尽管MySQL手册是发布的最好手册之一,MySQL 4.1还是附带了仅适用于该版本的HELP命令。
  支持派生表,例如:
SELECT table1.field1 FROM table, (SELECT * FROM table2) table3 WHERE table1.field1=table3.field1
  支持多行查询,允许运行多个查询,然后读取最终结果。
  各种维护语句将存入二进制日志中,在复制时您可以简化维护任务。
  CREATE...LIKE允许开