八条不使用MySQL的理由

教程大全 2025-07-12 08:48:09 浏览

MySQL数据库 不使用的理由,虽然很多理由都是出于误解的,但是的确存在着一部分很充分的不使用MySQL的理由。当然,现实的情况会根据环境有所不同,但是在每个情况下,我觉得拒绝任何数据库技术应该基于合理的理由,而不是根据某些疲惫不堪的数据库管理员(DBA)的意见。为了达到这样的目的,我在这篇文章中列出了八条不使用MySQL的理由。

首先,不使用某种技术的理由和使用这个技术的理由在本质上不同。常常,反对某些东西的理由会更加让人注意。我们可能需要几条理由才会真正的使用这个技术,但是只要一个理由就会让我们止步。软件的选择就是这样的决定,仅有一个理由是决不足够促使我们做出肯定的决定,但是一个充分的负面理由会否定很多积极的因素。

虽然有一长串关系数据库管理系统(RDBMS)可以供我们选择,但是我将对比限制在几个最常用的产品上。虽然全面的对比很少,还是存在着很多技术上的比较。在这里,我们只关心“正规”理由。

MySQL使用GPL

最重要的理由优先。在这里并不适合GNU General Public License,并且也不应该是数据库技术的选择。很明显,GPL许可证对很多环境是积极的,但是对于其他一些环境,GPL的软件是没有希望的。在这些情况下,连PostgreSQL的BSD许可证仍然太“开放”,那么一个商业的许可证会更加适合。

MySQL不使用GPL

在一些情况下,MySQL是收费的,这样GPL可能不能很好的服务于这些情况。如果你想要将这个数据库的许可证和你自己的项目一起销售,你的项目一定要采用相似的许可证,或者你需要购买商业许可证。如果这个因素改变了你的软件的销售方式,你需要处理由于必须支持MySQL的多个版本或者配置而引起的额外的负担(这会增加终端用户的成本),或者存在由于MySQL的使用造成的不合理的影响。在这些情况下,一些软件分销商可能倾向于采用其他的产品,比如BSD许可证的PostgreSQL。

和现有环境的集成

我知道大型的IT公司会有Oracle和Sybase的单位软件使用权(Site License),以及很多MS-SQL Server的专有许可证(specific license)。在这些公司中,这种MS-SQL的实例主要是各部门的无知职员造成的,他们不知道他们已经花钱购买了其他数据库的site license。在这种环境下,再加入MySQL(或者其他的数据库)是不明智的想法,如果DBA已经有太多环境需要处理。在存在已有数据库的情况下,如果维护的是一个通用的平台,那么很明显维护的负担会降低。进一步,如果这个公司已经有了使用某个私有系统的许可证,那么使用MySQL的主要理由就不存在了。

产品的成熟度

通过比较,在2009年Oracle将庆祝它的***个产品发布了30周年,那时MySQL***个产品的发布时间还不到Oracle的一半。单就自身而言,Microsoft SQL Server仅仅比MySQL早了几年,但是它的***次发布的产品是基于Sybase的,该产品的比SQL Server早了6年。至于其他著名的开源数据库,在2009年PostgreSQL距离***次发布已经20年。虽然MySQL并不是市场上***的数据库,但是还有很多更老、更稳定的可选产品——并且对很多人来说,这个理由已经足够了。公平的讲,以我的观点这个理由并不是反对使用MySQL的特别充分的理由,但是同时,我被逼着告诉一位将为关键任务的应用选择平台的保守IT经理基于这个理由作决定将是错误的。

功能集的成熟度

有些人被吸引去编辑MySQL和其他系统的全面的功能比较,以此作为权威的决策工具,但是在很多情况下,这根本就不可能成功。随着各个厂商新版本或者补丁的的发布,这个功能列表很快变得过时。进一步,对某些应用很重要的功能和其他的应用一点关系都没有,这样“10%更多的功能”将是没有结果的度量。真正发挥作用的是在发布的时候功能集是否和需求一致,或者足够一致。

有时候,你可以绕过一些缺少的功能,比如MySQL 4.1版本中使用join替代子查询。RDBMS中大部分的必要的功能都在MySQL 5.0中实现,但是我们仍然有理由认为这些功能的成熟是避开MySQL的一个可能的理由。比如,缺乏视图、触发器和存储过程是对MySQL由来已久的批评。这些都被MySQL支持超过一年时间了,但是相比之下,在其他的RDBMS中这些功能已经存在超过10年了。

当然,MySQL团队的开发周期在很多方面都给人留下了深刻的印象。然而,如果用户的性格是排斥新技术,那么长期支持的功能获胜的概率会更大。在这种情况下,上面提到的三个主要的功能就是最近才加入的。即使在MySQL 5.0中,ACID(Atomicity, Consistency, Isolation, Durability)的一致性在当一些存储过程或者函数被用于修改数据库而造成死机的情况下还是无法保证的。

认证的可用性

有一些IT公司喜欢认证。虽然MySQL的确有一个认证培训计划,它的培训可用性还是没有Oracle或者MS-SQL Server那样广泛。广义上讲,即使MySQL的IT人员相对容易找到,但是认证或者培训仍然很少,也没有很多第三方的培训可用。对于大的IT公司而言,遵循商业数据库系统的实际的公司经验也是需要的,但是一些具有MySQL经验的人可能没有足够的深度。

另外一个相关的问题是合格的第三方的支持的可用性。虽然直接从厂商得到的支持服务能够在一定程度上解决这个问题,但是如果强烈的需要第三方的本地的现场支持,那么这个问题还是存在。

公司因素的考虑

Oracle、Sybase和Microsoft都是上市公司。关于MySQL公司后台的实力的无论怎么说,事实是这家公司不是上市公司,意味着按照法律财政数据不需要公开。冒着被指控传播FUD(惧、惑、疑,Fear, Uncertainty and Doubt)的风险,上市公司相对透明(无论正确与否)能够为一些IT经理和他们报告的上级提供些许的确定性、可靠性和安全。如同一句老话说的,没有人因为购买了IBM的产品而被解雇,这句话同样适用于这里(即使IBM最近决定销售MySQL);使用著名大公司的产品的确帮助一些人在晚上睡的着,他们是投资者、PHB (Dilbert reference: Pointy-Haired Bosses)和经验丰富的IT经理。

可扩展性的领悟

我很小心的命名这***一个理由。很多业内的专家对于MySQL不能很好的扩展都有一致的感知。这个问题被很多人都讨论过,虽然大部分的讨论趋于消除水平扩展和垂直扩展之间区别。MySQL谈到水平扩展比垂直扩展的次数更多,但是将可扩展性列为使用MySQL的主要理由之一。

同时、我注意到存在着一个趋势,但是我还没有可靠的数据支持这个趋势,那就是受过正规培训的DBA往往会选择私有的RDBMS,比如Oracle。我怀疑那些有正规培训和经验的DBA(而不是软件工程师)往往对私有的系统有一种偏爱。在那些为DBA分配了固定角色的大环境中(相对于兼职的咨询师或者兼具程序员身份的人),MySQL可能由于这个原因而失宠。在这个层次上,MySQL的扩展性是否是个真实或者想象出来的批评就变的无关紧要了。如果没有一个充分的理由颠覆这个因素,当你负责安排资源的时候,你想要给他们那些他们最喜欢、带来好处的工具。如果你的那些具有15年经验的DBA想要Oracle,并且Oracle也在预算之内,那么从长远来看这个方法会有回报的。

进行到了这里,当比较几种稳定的、成熟的、功能丰富的产品的时候,人们就可以不再于哪一个才是绝对意义上“更好的”产品这个问题。取代这个问题的应该是一个需要更多洞察力的问题:哪一个产品才是最适合于给定环境的。我认为主要的RDBMS产品都会遇到这个问题,包括MySQL。这个情况何时发生的问题对一些产品可能是公开的,而这几个产品也欢迎在这个问题上展开讨论。我能够这么说,每个产品都会有不适用的特殊时刻,这就是今天的格局,对任何主要的系统都是一样的。在MySQL的例子中,我相信我们已经提到了几个最充分的理由——这些理由不会是一锤子买卖,也不会很快变的过期的。

八条不使用MySQL的理由

八条不使用MySQL数据库的理由已经为大家罗列出来,上文中的内容仅供大家参考,大家在选购数据库时可以根据自身的情况而定,最胡选择一款适合自身发展的数据库。


如何安全地关闭MySQL实例

关闭过程:1、发起shutdown,发出SIGTERM信号2、有必要的话,新建一个关闭线程(shutdown thread)如果是客户端发起的关闭,则会新建一个专用的关闭线程如果是直接收到 SIGTERM 信号进行关闭的话,专门负责信号处理的线程就会负责关闭工作,或者新建一个独立的线程负责这个事当无法创建独立的关闭线程时(例如内存不足),MySQL Server会发出类似下面的告警信息:Error: Can’t create thread to kill server3、MySQL Server不再响应新的连接请求关闭TCP/IP网络监听,关闭Unix Socket等渠道4、逐渐关闭当前的连接、事务空闲连接,将立刻被终止;当前还有事务、SQL活动的连接,会将其标识为 killed,并定期检查其状态,以便下次检查时将其关闭;(参考 KILL 语法)当前有活跃事务的,该事物会被回滚,如果该事务中还修改了非事务表,则已经修改的数据无法回滚,可能只会完成部分变更;如果是Master/Slave复制场景里的Master,则对复制线程的处理过程和普通线程也是一样的;如果是Master/Slave复制场景里的Slave,则会依次关闭IO、SQL线程,如果这2个线程当前是活跃的,则也会加上 killed 标识,然后再关闭;Slave服务器上,SQL线程是允许直接停止当前的SQL操作的(为了避免复制问题),然后再关闭该线程;在MySQl 5.0.80及以前的版本里,如果SQL线程当时正好执行一个事务到中间,该事务会回滚;从5.0.81开始,则会等待所有的操作结束,除非用户发起KILL操作。 当Slave的SQL线程对非事务表执行操作时被强制 KILL了,可能会导致Master、Slave数据不一致;5、MySQL Server进程关闭所有线程,关闭所有存储引擎;刷新所有表cache,关闭所有打开的表;每个存储引擎各自负责相关的关闭操作,例如MyISAM会刷新所有等待写入的操作;InnoDB会将buffer pool刷新到磁盘中(从MySQL 5.0.5开始,如果innodb_fast_shutdown不设置为 2 的话),把当前的LSN记录到表空间中,然后关闭所有的内部线程。 6、MySQL Server进程退出

卡盟排行榜源码的安装地址是多少?

一是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。 在2008年1月16号被Sun公司收购。 目前MySQL被广泛地应用在Internet上的中小型网站中。 由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。 MySQL的官方网站的网址是:MySQL的特性1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统 3.为多种编程语言提供了API。 这些编程语言包括C、C++、Eiffel、java、Perl、PHP、Python、Ruby和Tcl等。 4.支持多线程,充分利用CPU资源 5.优化的SQL查询算法,有效地提高查询速度 6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径 8.提供用于管理、检查、优化数据库操作的管理工具 9.可以处理拥有上千万条记录的大型数据库与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。 对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。 目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。 由于这四个软件都是遵循GPL的开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。 二你文的Oracle是指Oracle数据库还是这个公司?Oracle是世界领先的信息管理软件开发商,因其复杂的关系数据库产品而闻名。 Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统。 Oracle的关系数据库是世界第一个支持SQL语言的数据库。 1977年,Lawrence 领着一些同事成立了Oracle公司,他们的成功强力反击了那些说关系数据库无法成功商业化的说法。 现在,Oracle公司的财产净值已经由当初的2000美元增值到了现在的年收入超过97亿美元。 Oracle的目标定位于高端工作站以及作为服务器的小型计算机。 Oracle的路线同Sun微系统公司类似,都提出了网络计算机的概念。 Oracle宣称自己是世界上首家百分之百进行基于互联网的企业软件的软件公司。 整个产品线包括:数据库、服务器、企业商务应用程序以及应用程序开发和决策支持工具。 从Oracle首席执行官Ellison的发言可以看出Oracle对网络计算的信心,他说:“Oracle公司的成败依赖于互联网是否能够成为将来的主流计算方式,如果答案是‘是’,Oracle就赢了”。 Oracle 11g五大特性与无压缩格式下存储数据相比,新的Oracle数据压缩技术能够确保以较小的开销节省三倍以上的磁盘存储空间。 这一点比仅节省磁盘空间要具有更大的优势,因为它能够使企业节约更多的开支,以便有更多的资金来巩固自己的地位。 自动诊断知识库(Automatic Diagnostic Repository,ADR)是专门针对严重错误的知识库。 该知识库基本上能够自动完成一些以往需要由数据库管理员来手动完成的操作。

现在企业上使用最多、最通用的的SQLServermysql和oracle使用最多、最通用的版本又是哪一个?

个分开看,下载方便,毕竟国内数据库市场。 国内的页游公司,2010,大的还是oracle,也有2005,一般来说数据库足够大,和11g为主,而且现在被oracle收购以后,要看公司,2012的(稍微少一些),多数是现在多数是2008,维护方便,不过大型数据库mysql没有任何优势,大多数都是这个。 企业上不少在用,这种大型数据库更换版本比mysql困难多了,oracle的占有率最高。 oracle是中大型数据库,用了2年然后就换版本了,中型数据库,更换也容易,什么都有。 一般有专门的dba或者维护厂商维护。 mysql是小型。 一般来讲sqlserver面广一些,大型数据库也有用它的,毕竟数据太重要)。 这个数据库安装简单,oracle总不会自己打自己吧,只是稍微有点浪费,毕竟它本身就不小(和sqlserver比较),费用低,才考虑它,不过小的为主,用它的主要以数据仓库。 9i(正在逐步退出)和12C(还比较新,而且还要各种测试,数据分析企业和中大型企业为主。 现在的版本一10g,小型也可以用。 sqlserver是中大型数据库。 版本不好说

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐