掌握怎样选择准备安装的MySQL版本

  首先要作出决策,你是否想要使用最新的开发版本或最终的稳定版本。在MySQL开发过程中,同时存在多个发布系列,每个发布处在成熟度的不同阶段:

  MySQL 5.2是最新开发的发布系列,是将执行新功能的系列。不久的将来可以使用Alpha发行,以便感兴趣的用户进行广泛的测试。

  MySQL 5.1是当前稳定(产品质量)发布系列。只针对漏洞修复重新发布;没有增加会影响稳定性的新功能。

  MySQL 5.0是前一稳定(产品质量)发布系列。只针对严重漏洞修复和安全修复重新发布;没有增加会影响该系列的重要功能。

  MySQL 4.0和3.23是旧的稳定(产品质量)发布系列。该版本不再使用,新的发布只用来修复特别严重的漏洞(以前的安全问题)。

  我们不认为有完全的冻结版,因为任何版本均需要对漏洞进行修复和其它修复。对于“某种程度的冻结”,我们是指我们可以在产品发布中增加一些不会影响当前工作的小东西。自然,前一系列的相关漏洞修复会移植到后面的系列。

  通常, 如果你是第一次开始使用MySQL或想要将它移植到一些还没有二进制分发版的系统上,我们推荐使用最终的稳定版本。目前是MySQL 5.1。我们已经使用MySQL基准对所有MySQL发布进行了检查,包括来自开发系列的发布,在发布前还使用基准套件来测试它。

  如果你正在运行一个老的系统并且想要升级,但是又不想冒险进行非无缝升级,应该升级到最新版本中你正使用的相同的发布系列(只有版本号的最后部分比你使用的新)。我们已经试着仅修复致命缺陷,对那个版本进行了很小的相对安全的改动。

  如果你想要使用产品发布系列中所没有的新功能,你可以使用开发系列的版本。请注意开发发布不如产品发布稳定。

  如果你想要使用包含所有最新补丁和漏洞修复的最新源码,可以使用我们的BitKeeper库。这些库还没有发布,但可以预览代码,将来的发布基于这些代码。

  MySQL的命名机制使用由3个数字和一个后缀组成的版本号。例如,像mysql-5.0.9-beta的版本号这样解释:

  第1个数字(5)是主版本号,描述了文件格式。所有版本5的发行都有相同的文件格式。

  第2个数字(0)是发行级别。主版本号和发行级别组合到一起便构成了发行序列号。

  第3个数字(9)是在此发行系列的版本号,随每个新分发版递增。通常你需要已经选择的发行(release)的最新版本(版本)。

  每次更新后,版本字符串的最后一个数字递增。如果相对于前一个版本增加了新功能或有微小的不兼容性,字符串的第二个数字递增。如果文件格式改变,第一个数字递增。

  后缀显示发行的稳定性级别。通过一系列后缀显示如何改进稳定性。可能的后缀有:

  alpha表明发行包含大量未被彻底测试的新代码。已知的缺陷应该在新闻小节被记录。

  在大多数alpha版本中也有新的命令和扩展。alpha版本也可能有主要代码更改等开发。但我们在发布前一定对其进行测试。

  beta意味着该版本功能是完整的,并且所有的新代码被测试了,没有增加重要的新特征,应该没有已知的缺陷。当alpha版本至少一个月没有出现报导的致命漏洞,并且没有计划增加导致已经实施的功能不稳定的新功能时,版本则从alpha版变为beta版。

  在以后的beta版、发布版或产品发布中,所有API、外部可视结构和SQL命令列均不再更改。

  rc是发布代表;是一个发行了一段时间的beta版本,看起来应该运行正常。只增加了很小的修复。(发布代表即以前所称的gamma 版)

  如果没有后缀,这意味着该版本已经在很多地方运行一段时间了,而且没有非平台特定的缺陷报告。只增加了关键漏洞修复修复。这就是我们称为一个产品(稳定)或“通用”版本的东西。

  MySQL的命名机制于其它产品稍有不同。一般情况,我们可以很放心地使用已经投放市场两周而没有被相同发布系列的新版本所代替的版本。

  MySQL所有版本都经过我们的标准测试和基准测试运行,以保证它们可相当安全地使用。因为标准测试不断扩充以检测以前发现的缺陷,测试套件一直在改进之中。

  所有版本都至少已经用下列套件进行了测试:

  一个内部测试套件
  mysql-test目录包含一整套测试案例。我们针对每个二进制服务器进行这些测试。

  MySQL基准套件
  它运行一定范围的普通查询。它也是一个测试,检测最新的优化处理是否真的使代码更快。

  crash-me测试
  这尝试决定数据库支持什么功能和它的能力与限制是什么。

  另一个测试是在内部生产环境中使用最新MySQL版本,至少在一台机器上。我们有超过100GB的数据可供使用。