阅读更多

18顶
2踩

数据库

转载新闻 MySQL创始人提醒使用MySQL 5.1仍需谨慎

2008-12-02 15:00 by 副主编 QQbyte 评论(9) 有9318人浏览

风轻扬 说道:历经3年的开发,MySQL 5.1总算前几天得以发布,没料到才过两天,MySQL的创始人之一Monty就对新版的MySQL的质量提出了严重的质疑,而且例举了非常详细的理由,这对于MySQL 5.1的应用可谓非常不利。前段时间有传闻说Monty可能会离开Sun,虽然目前事实没有发生,但现在看来Monty与MySQL团队目前的关系确实比较紧张。

Monty 建议,如果你正在用MySQL 5.0,想换成5.1但不打算用5.1中的新功能,那么必须进行充分的测试和试运行,最好是等5.1再发布几个更新修正版后才用。如果你想用5.1中的新 功能,你最好认为这些新功能的质量只能算beta水平,因此每用一个功能之前都必需仔细测试。如果从来没有用过MySQL的话,可以直接用5.1,因为 5.0版毕竟已经too old了。

Monty说5.1的质量并不令人满意,比如说目前仍然有50多个将导致系统crash或产生错误结 果的bug、近200个P2优先级的bug和300多个一般的bug未被处理。Monty例举了一些他认为比较严重的bug,接下来对5.1中的新功能的 质量一一进行了分析,结果表明这些新功能目前也都还有严重的问题。比如分区有20个左右的bug,存在对分区表进行ALTER TABLE操作时系统crash会导致数据丢失并且通常无法repair、重命名失败时也会导致数据被破坏等严重问题。行级复制则有近30个已知bug, 其中最严重的是UPDATE主键将导致行级复制失败(这个问题确实太严重了)问题。其它如Event也有会导致死锁的问题,日志表功能则会导致数据库性能 严重下降,以致于官方的公告里都不好意思把这点说出来。

Monty认为导致MySQL 5.1质量不能令人满意的原因并不是因为MySQL的开发团队不够努力,而是很多策略上存在问题。在我看来,MySQL 5.1所范的这些策略性失误对于很多软件开发公司来说都有很好的借鉴意义:
1、 MySQL 5.1早早的就标上beta和rc标志,官方这样做是想吸引更多的人来试用5.1(tmd我们一开始还真的被骗,在06年的时候看到5.1已经是beta 了,以为马上就会出正式版,所以直接就用了5.1,不过不到三个月发现5.1不行又回退到5.0)。这一策略不怎么成功,但却导致了早在06年5.1的特 性就被过早冻结,无法进行大的调整;
2、决定什么时候发布5.1不再取决于产品的质量,而是出于营销的需要。MySQL管理层要求5.1在这个时 间发布那就得发布,因为标上GA总比RC好推销,所以在发布5.1时,根据就没有按照既定的发布策略行事(按MySQL的发布策略,GA版应该没有已经的 严重问题才能发布);
3、核心MySQL开发人员被分到很多小组里,只有很少的核心开发人员在完善5.1的质量,反之,这项工作被交给了太多的对 系统一知半解的新开发人员,在review的流程上又出了问题,这导致修复一个bug经常带来更多的bug。(这点我深有体会,我们报上去的一个bug, 负责处理的开发人员明显是个新手,我们已经把问题描述的很清楚了,这位老兄硬是很久才明白问题的实质原因)
4、QA很晚才开始做,结果后来QA发现的问题被迫被无视,因为要修正这些问题的话将严重拖延5.1的发布时间;
5、MySQL开发团队对bug的优先级有一条很奇怪的规定:很早就被报告的bug优先级比较低,因为他们认为大家都知道有这个bug,会避道而行。这导致那些早早就发现的bug迟迟不会被修复。

通 常来说,Sun的大部分产品都有一个独立的发布标准委员会来决定产品的质量是否达到RC或GA的标准,因此Sun的产品品质一般都不错,但对MySQL却 没有采用这一策略。这次发布5.1 GA是觉得现在的5.1质量已经比当年的5.0 GA质量好得多了,因此就发布了,很奇怪的逻辑。

Monty说这次的失误并不是Sun的过错,主要是MySQL的遗留问题,MySQL的发布策略一向很糟糕,5.0刚发布的时候质量还要差。希望Sun能够帮助MySQL团队解决这些问题。

总之,对使用者来说,看来目前还不是把MySQL 5.1应用到正式产品环境中去的时候,至少等仔细看看Monty文章里例举的那些bug,看看哪些确实有危险,然后等待这些bug都被fix之后再用吧。

18
2
评论 共 9 条 请登录后发表评论
9 楼 姚坤山 2009-01-15 13:53
     
8 楼 sonic10101 2009-01-08 08:37
MySQL体积小,消耗资源少,还是比较方便的。
7 楼 inosin 2008-12-04 16:20
mysql走到头了?
是不是该考虑换个其他什么免费数据库来跑web3.0了?
6 楼 jitabc 2008-12-03 15:12
WIN32下在CMD窗口不显示中文非乱码,且我用客户端工具一切正常!!!
5 楼 taotao6086 2008-12-03 12:00
还好只是内部使用的小系统使用到mysql
4 楼 AllenZhang 2008-12-03 10:38
我靠,还好先在测试环境试用了一把
3 楼 jiazhigang 2008-12-03 09:36
MySql一直就不怎么样,只不过被别有用心的人捧上了天,今天终于自己也承认了
2 楼 yiminghe 2008-12-03 01:10
测试,5.1速度感觉有所提升,建议升级
1 楼 eyejava 2008-12-02 20:32
当八卦读一读,还好不需要决策用什么mysql在生产上

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • C#一些入门知识

    这是一个C#的一些入门小知识,希望 大家 喜欢

  • C#中的属性(get、set、value)浅谈

    这种参数类型的自动转换时基于.NETFramework提供的类型转换器而实现的,CLR将C#源代码编译成中间语言IL,在这种类汇编的高级机器语言中可以发现value参数的传递机制。

  • C#中的value怎么用

    value是C#的一个隐含变量,用于在属性的Set访问器中表示被赋给的值. 你把它理解为和this指针差不多就可以了,是系统自动提供的一个变量. 比如我声明一个属性StudentID private string studentID; public string StudentID { get { return(studentID); } set { studentID

  • c#中value是什么意思

    这是c#中的“属性”假如某个类中有一个成员变量(字段),一般是不允许外部访问的,为了安全性如果要访问它,必须通过“属性”来访问,例如:private int Id; //这是一个成员变量,private表示是私有的,外部不可访问public int ID{get { return id; } //当外部访问“属性”ID时,返回id的值set { id = value; }//当外部为“属性”ID...

  • C# 基础(八)C# get set 以及value 表示什么意思?举例说明

    一、基础知识(你只有程序拷贝过去,自己单步执行,才能发现Value是怎样来的) 1、只读 //https://www.cnblogs.com/lixiaolu/p/8214037.html http://www.cnblogs.com/zl181015/p/9243881.html 2、只写 //https://www.cnblogs.com/lixiaolu/p/8214037.htm...

  • value(C# )

    上下文关键字value用在普通属性声明的 set 访问器中。 此关键字类似于方法的输入参数。 关键字value引用客户端代码尝试分配给属性的值。 在以下示例中,MyDerivedClass有一个名为Name的属性,该属性使用value参数向支持字段name分配新字符串。 从客户端代码的角度来看,该操作写作一个简单的赋值语句。 //这里value代表在外部对num这个属性赋的...

  • C#中的value

    public double Balance { get { return balance; } set { if (value >= 0) { ...

  • C# 重要知识点

    3. 控制流语句:C# 中的控制流语句包括条件语句(if、else、switch)、循环语句(for、while、do-while)和跳转语句(break、continue、return)等。10. 面向对象设计原则:C# 中的面向对象设计原则包括 SOLID 原则、依赖倒置原则、接口隔离原则、单一职责原则和开闭原则等。变量是用来存储数据的容器。1. 类和对象:C# 是一种面向对象的编程语言,类是对象的模板,对象是类的实例。4. 方法和函数:C# 中的方法和函数用于执行特定的任务,可以接受参数和返回值。

  • 【To .NET】C#基础较难易混知识点整理

    C#基础较难易混知识点整理。

  • C#——笔记

    C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言、运行于.NET Framework和.NET Core(完全开源、跨平台)之上的高级程序设计语言。·C#是一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性。(1)构造函数的定义构造函数是在创建给定类型的对象时执行的类方法。构造函数具有与类相同的名称,它通常初始化新对象的数据成员。不带参数的构造函数称为“默认构造函数”。...

  • C#学习笔记 - C#基础知识 - C#从入门到放弃

    C# 的发音为“C Sharp”,是一门由微软开发并获得了 ECMA(欧洲计算机制造商协会)和 ISO(国际标准组织)批准的现代的、通用的、面向对象的编程语言。C# 是一种现代的通用的编程语言;C# 是面向对象的;C# 是面向组件的;C# 简单易学;C# 是一种结构化语言;使用 C# 开发效率很高;C# 可以在各种计算机平台上进行编译;C# 是 .Net Framework 的一部分。

  • 如何用c语言创建一个编辑框,如何: (c + + 创建对话框)

    如何: (c + + 创建对话框)02/15/2019本文内容"C + +" 对话框的位置和大小以及其中控件的位置和大小以对话单位来度量。 当你选择各个控件的值时,它们将显示在 Visual Studio 状态栏的右下角。备注如果你的项目尚未包含 .rc 文件,请参阅 创建新的资源脚本文件。操作方式利用 对话框编辑器 ,您可以:创建新对话框在 资源视图中,右键单击 .rc 文件,然后选择 " 添加...

  • C#之难点

    前言首先说一下我为什么要总结这篇C#博客,是因为我感觉学到这的时候有很多我理不清的东西,并且自我感觉是非常重要的一部分,所以我才写这篇博客,不但加深自己影响,希望也可以帮助但其他美女帅哥们!关于字符1.给大家看一个图片 当我们定义字符串st存放数据的时候可能刚开始我们存放的是12345,但是当我们重新为st赋值为“哈哈”的时候,大家有没有想过原来的字符串跑到那里面,他是怎么就覆盖了呢?st只不过改

  • C#基础概念二十五问

    注:本文部份资料来自网络,如有侵权,请与我联系,我会在第一时间声明引用或将其删除!    当初学 C# 时是找个人大概问了一下数据类型和分支语句就开始做项目了。这两天又全面的看了一下相关的基础知识(学而时习之嘛),总结了25个问题:1.静态成员和非静态成员的区别?2.const 和 static readonly 区别?3.extern 是什么意思?4.abstract 是什么意思

  • c#经常用到的知识总结(一)

    一、异步多线程        我们写代码过程中经常会涉及到一些复杂的业务逻辑,系统处理时间有需要很长的时间,如果是同步的话,就会给用户带来极差的用户体验;那么我们就会用到一个异步处理,让复杂逻辑通过另一个线程去完成,及时响应用户的需求。      多线程程序调用方法      Thread thread = new Thread(ThreadMethod); //执行的必须是无返回值的方法

  • c语言弹跳小球怎么加边框_(图文+视频)C4D野教程:趣味弹跳立方体制作全过程...

    废话不多说,继续来临摹,原图同样是INS上的大神BastardFilms:我终于找到了一个可以解析INS视频的网站,我把它压成了动图我们一起来看看吧:原作者:BastardFilms 如侵请联删是不是一个很有趣的效果,我一开始的想法是立方体掉在地面上碰撞产生顶点贴图,然后再通过顶点贴图发射烟雾、液体、粒子一类的。后来在苦七的提醒下发现自己想复杂了,其实就用点剪辑的思维在关键帧的位置把对象显示出来就...

  • c语言弹跳小球怎么加边框_做游戏,学编程(C语言) 网易云课堂MOOC视频

    应一些同学的要求,把这学期上C语言编程课的讲课视频录制剪辑,上传到网易云课堂,感兴趣的朋友可以在线观看,欢迎多提宝贵意见。MOOC视频链接:http://study.163.com/course/introduction.htm?courseId=1004489035【适用人群】零基础编程自学者、大学理工科学生,对游戏开发感兴趣、觉得已有编程教学方法太枯燥的学生【课程概述】先讲最少的语法知识,再把...

  • C#常用知识点总结

    C#常用知识点总结: 1)方法定义语法:   访问修饰符+返回类型+方法名称+(参数列表)+{方法体}         注意:方法体中的最终返回类型必须和方法定义的返回类型一致,换句话说,如果 方法定义不是void类型,则方法体中要看到return关键字,反之return可以省略。    其中:访问修饰符有:   1)public protectedinternal private(区

Global site tag (gtag.js) - Google Analytics