| Twitter | Del.icio.us | Comments (15) | | Edit

Comments Powered by Disqus

留言评论 | Comments (15)

当大家还在关注MySQL5.5.6RC版本的时候,OSC却改变了MySQL的历史!

看起来只是一个php工具程序?不是对mysql的代码更新?

Come on,man.

这只是利用trigger实现了一个在线的索引添加,所有这些都和openarkkit的思路一样。我曾经还通过trigger实现过类似Oralce的物化视图,其实思路也是大同小异,这很强吗?我觉得一个Level高点的DBA都应该可以想到,这不是一件难事,更没有理由这么激动。

我觉得要在代码底层让MySQL实现在线索引的添加这才是最重要的,我相信OCS只是一个不错的解决方案,仅此而已。但是他同样会带来一些问题,只是现在或者使用者还没遇到而已。

中国很多的MySQL DBA都是停留在应用的角度,的确,从Oracle,SQL Server的DBA过来来看,他们只能机械应用,最多只是比人多知道一些RAC的一些Bug,除此之外他们没有任何的创新。可能是Oracle都帮他们完成了。另一方面来说,DBA大多没有掌握好一些底层的编程经验,有Java的经验是可以对应用有很好的理解和掌控,可是对于数据库底层的了解没有任何帮助。而Facebook比较有意思的是,你发现他们有1800台数据库,确只有2个DBA。这才是Facebook,Google不同于国内对于MySQL的应用。

而开源的魅力不仅仅在于他是免费的,更重要的是创新。即使淘宝,阿里巴巴他们在MySQL方面也毫无建树。是的,我听说他们在尝试修改底层了,但是他们的目的只是为了证明他们可以修改,而不是在于创新,他们所做的事情都是在模仿前人做过的事情。而放眼整个中国的MySQL应用,我只看到InnoDB Secondary Buffer Pool的patch。我没尝试过,但是那的确是个不错的创新思想。

这只是个php工具,一毛钱都不值

Note that the above operations can be done within the storage engine itself, or using an external (PHP) script. We followed the latter approach as it can be implemented much faster.

Facebook team 认为第二种PHP的方式更快捷的实现,所以只实现了PHP版本。

值不值,不在于这个php脚本本身,在于它是否完善了某些功能,真的提升了效率。看待问题永远不要停留在表面,我们需要学习的是他们这种创新的能力以及解决问题的方法和勇于实践的精神。

还有一种方法也可以达到在线修改表结果的目的,方法是在Slave上修改表结果,等同步后切换到Slave上去,我们更喜欢用这种方式。当年Openark Kit的实现我们分析后总感觉心里不太有底,首先正确性验证挺复杂的,另外只支持InnoDB,还有就是对系统的性能影响会受应用模式等一些因素影响,若不是高手操作容易搞出问题。

我们更喜欢用借助于slave的方式,不只可以加索引,加字段也行,我觉得这种方法大家也可以考虑

据我说知,这个有公司实现过的,是java版的

从想法到实现,其实还有十万八千零一公里呢
==========================================
嗯,注重实际的操作或者实现是很重要的

Peter说的----而放眼整个中国的MySQL应用,我只看到InnoDB Secondary Buffer Pool的patch。我没尝试过,但是那的确是个不错的创新思想-------------我第一次看到这个patch的时候就很惊讶,将oracle的extradata的思想借鉴过来,就算很多人想到,但是有多少人去用自己的代码去实现,然后再优化呢?
http://bbs.chinaunix.net/thread-1768552-1-1.html

"甚至 PostgreSQL 也具备联机 DML 的能力"
应该是“也具备联机 DDL 的能力”吧?

实际提高了生产效率,就是有价值。
事实胜于雄辩,少说多做才是王道。

这确实是一个php的实现,乍一看原理也不复杂,但如果没有对MySQL的非常深入的了解,是很难完成的。
很多人也许就满足于知道一知半解的原理而浅尝辄止。

percona公司的pt-online-schema-change的perl程序,触发器写的也很巧妙。