SQLServer与MySQL数据库对比(二)

2014-11-24 15:32:55 · 作者: · 浏览: 7
操作的效率当然要比磁盘高,所以他性能高也就很正常的了,加上他是商业数据库,新版的SQL Server 2008性能已经很夸张了,后面会有详细数据。MySQL的内存占用是令人满意的,占用很小,而且不论我怎么调整,我见到MySQL占用内存的上限只有1.1G,当时也是个很极端的情况,一个用户的站点被人攻击,3万多并发持续请求PHP页面,是个论坛来的,后面挂接MySQL,IIS程序池占用的CPU已经导致一颗处理器核心满载了(四核,他用了25%),而MySQL却用掉了60%,超过两颗核心的负载,MySQL进程占用内存接近1.1G,因为他论坛的帖子较多,印象中是300多万还是800多万帖子,系统负载很高了,MySQL明显的反应迟缓,甚至检索超时。前边提到第一次检索的问题,也讲了原因,SQL Server第一次因为要缓冲到内存中,所以需要读取整个数据库物理文件,所以第一次检索的速度是被磁盘给拖住了,实际上Windows大多数程序第一次启动都会很慢,包括ASP.Net页面也是一样,但是过了第一次,速度就明显提升;而MySQL始终如一,中规中矩的,第一次和第十次速度一样。但是通过监控系统的IO操作可以得知,MySQL始终都要频繁的读写物理文件,所以速度自然没有SQL Server高。当然区别不止是这个,但是我们平时很少涉及到千万数据量以上的检索,能看到的也就这些。

  再谈谈安全性,上面也提到了官方以及第三方数据,说明MySQL没有SQL Server安全,其实包括操作系统也是如此,Windows系统出现高危 漏洞的次数远远少于Linux/Unix,而IIS的漏洞能数的过来,Apache的洞却很多很多。所以总有人说Linux怎么安全,我不知道他这样的论点,依据是什么。我从事过信息安全工作,关注漏洞列表是一个习惯,近几年来,Linux/Apache/MySQL的漏洞数量绝对在Windows/IIS/SQL Server的两倍以上。再说一个上面没有提到的安全性问题,就是 数据库的物理文件,大家都知道,物理文件的安全性决定一切的,SQL Server的文件操作是很安全的,起码这10多年来我还没遇到过SQL Server莫名其妙的物理文件损坏的情况,而MySQL则遇到很多次了,莫名其妙的索引就坏了,有时候能修复,有时候还不能修复,逼的我们开发了自动备份 系统。。。

  最后讲一个自己的事情。因为一些原因,我抓取了sohu一个子站的所有文章,15万多还是16万多,文字数量在1.5G,当时突发奇想对比两种数据库的性能。全部正确插入数据库以后做模糊检索,对比速度(MySQL少了几篇文章,因为转义字符太多,懒得查了)。SQL Server上我先做了一次大规模的模糊检索,让他挂载内存,然后sum(Like)一个几乎每篇文章都有的关键字,运行了三次,最差的一次是49毫秒,也就是0.049秒。然后做MySQL,测试了5次,每次都出不来结果,等了几分钟没响应,杀掉进程重启,再来……最后一次直接进程崩溃了,我也就没心情去研究了。

  根据自己这些年来服务器管理的经验来讲,SQL Server的强壮性、性能以及稳定性都要远远高于MySQL的(还没提到,MySQL有几次莫名其妙崩溃的事情),如果你的应用比较复杂,数据量大,并且是“关键性”应用,那么选择一个商业数据库是没错的,但是如果你实力很强,有自己研发能力,能做到像yahoo和Google那样集群,甚至是自己改造数据库的能力,那么用MySQL是适合你的。如果你的应用比较简单,数据量也不大,并且数据表的结构比较简单,那么MySQL适合你用,但是请你做好备份措施,MySQL的强壮性实在不敢恭维。