SQLServer与MySQL的比较

时间:2022-05-11 14:55:28

之前一直用MySQL,虽然比起SQLServe这个庞大的数据库系统MySQL很苗条,但它并不逊色。以下说说这两个在数据库各自的分页区别。

例1,取出前十条

在MySQL中:    SELECT * FROM table LIMIT 10

在SQLServer中: SELECT TOP 10 * FROM table

例2,每页十条,取出第三页

在MySQL中:   SELECT * FROM table LIMIT 20,10

在SQLServer中:SELECT TOP 10 * FROM table WHERE ID NOT IN

(SELECTTOP 20 ID FROM table ORDER BY ID DESC) ORDER BY ID DESC

由以上例子可以看出,在MySQL中分页用LIMIT关键字,如果是LIMIT10表示取前十条,如果是LIMIT 10,10表示偏移十条取前十条记录。在SQLServer中用top关键字,如果只取前n条记录直接topn即可,但是要是分页取就有点麻烦。

性能

这可能是所有DBA最关心的。MySQL的读写性能确实一流,即使针对大数据量也没问题,但前提是必须使用简单查询,就是最好不要使用函数/join/group等方式查询。而SQLServer的简单查询速度不如MySQL,但复杂查询时,性能降低的不多,可见,SQLServer的查询优化作的可能更好。

但你可以通过针对性的表结构设计来避免MySQL进行复杂查询(多冗余,少关联)

插入速度也很快。为了提高性能,我甚至使用了不用日志的方式,确实快,哪怕大量并发也没问题。

对机器配置的要求

MySQL对机器配置要求不高(于SQLServer相比)。对于大表的ϖ作,一台pd925/2Gram/sataII硬盘//linux2.6内核 的机器可以轻松处理几千万条记录的数据表。

而对于SQLServer,我们使用了双xeon5110/4Gram/raid10(6块sataII硬盘)/win2000ADserver的机器,数据表也有几千万条记录,结果负荷一高就崩溃了,很不稳定。

安全性

感觉MySQL5+linux2.6的安全性高于win2ksp4+SQLServer2000sp4,MySQL漏洞少,我们有一台SQLServer,因为某些功能必须开放1433端口,虽然用了防火墙并作了安全配置,但还是被黑了:

因为MySQL的安全配置比较透明简单,权限明确,不易出漏洞。而SQLServer的用户配置是和ϖ作系统绑定的,很容易出问题。此外由于不是开源系统,1433端口暴露的安全问题谁也说不清,最好是将其完全放入内网,其他的都是扯淡。

可配置性

MySQL可配置性很好,基于文本文件,很细很清晰。而SQLServer的很多配置必须用特定的存储过程完成,较复杂,不清晰(虽然基本配置很简单,有图形界面)

功能

这点MySQL与SQLServer确实没法比,如存储过程/触发器/丰富的函数/图形化的管理界面/自动维护的计划任务/与开发工具的集成等等

价格

这不用说了,一个免费,另一个贵的吓人

总结起来,SQLServer体现了ms产品的一贯特点:容易上手,编程方便(SQLServer内置的查询优化作的确实不错,对于一些数据库新手来说方便很多——即你不必对表结构作过多优化也能得到不错的性能),因此倍受“揽活公司”(我是这么称那些开发Mis项目的公司的)的喜爱,你完全可以集中注意力在应用的实现上,而且,小项目意味着小数据量,一般的服务器也能应对了;而大项目往往意味着大的数据量,好在一般预算也高,可以选择更高档的服务器来伺候SQLServer。

但数据量大,而预算有限,那最好用MySQL,您辛苦点,多研究一下MySQL和Linux系统,表结构设计也最好找有MySQL经验的人来做,做好了,能够得到超出你想象力的效果。但如果只能买低端服务器,而要用SQLServer处理大量数据,那就等死吧。