随着 MySQL 被 Oracle 收购,MySQL 的用户和开发者开始质疑开源数据库的命运,与此同时他们开始寻找替代品。
有文章写到了放弃 MySQL 的五大理由: MySQL 不如其它关系型数据库管理系统那样成熟; MySQL 是开源的...但只有近似而已; MySQL 的性能无法与竞争对手相提并论; MySQL 是 Oracle 所有的,而不是社区驱动的; 越来越多的强劲对手。 从 MySQL 转向 MariaDB的代表厂家:谷歌(2013年9月)、RedHat(2013年6月)、维基百科(2013年4月)
MySQL 在 2008 年被Sun以10亿美金所收购,MySQL 创始人 Michael Widenius 则不满 Sun 开发团队脚步过慢,愤而离职成立开源数据库联盟,另外从现有 MySQL 程序代码中,开发出另一个延伸分支版本,也就是名为玛莉亚数据库的企业级开源数据库 。
玛莉亚数据库如同 MySQL 的影子版本,玛莉亚数据库是 MySQL 的一个分支版本(branch),而不是衍生版本(folk),提供的功能可和 MySQL 完全兼容。 从 MySQL 转向 PostgreSQL的代表厂家:苹果(2011年)
PostgreSQL是一个自由的对象-关系数据库服务器(数据库管理系统)。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、 *** 作符、聚集函数、索引方法、过程语言。并且,因为许可证的灵活,任何人都可以以任何目的免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。
PostgreSQL 也受 NoSQL 思想的启发,希望能够在今后可以给使用者更多可定制可调节的功能(不是说这个成熟的关系性数据库系统要向 NoSQL 转变)。 NoSQL(NoSQL = Not Only SQL),意即“不仅仅是 SQL”,是一项全新的数据库革命性运动。NoSQL指的是非关系型的数据库。随着互联网 web2.0网站的兴起,传统的关系数据库在应付 web2.0 网站,特别是超大规模和高并发的 SNS 类型的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
其代表的开源软件如:Membase、MongoDB、Hypertable、Apache Cassandra、CouchDB等。 Oracle自 Oracle 10g 后推出对应的免费版。
1.程序逻辑部分,新逻辑上线,注意对老逻辑的兼容,千万不要不管三七二十一暴力替换。2.数据库部分:
1)能建新表尽量建新表以避免对老数据的破坏。
2)如果老表有字段增加,千万不要做非空,唯一性的约束,否则后果自负。
3)假如需要减字段,那么请考虑临时替代的方案,比如新建一张临时表,让程序先取临时表数据,最后等新表建立后再切换过来,导入数据。
3.CACHE等需要序列化,反序列化的部分。一定要兼容原先在缓存中的数据,例如SID千万不要变化,否则反序列化失败,假如有字段需要增加,那么考虑第一次读入先取数据库。
4.外部接口相关的,能不要求外部接口联调,尽量就不做联调,一是麻烦,二是风险大。尽量对原接口传入和传出的数据保持兼容。假如有变化,考虑用适配器封装,实在没办法再实行下策。
5.注意 *** 作的先后顺序,这个也是非常重要,例如你先发了数据库,但是程序还是老的,并且会受到影响,那么就挂了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)