admin 管理员组文章数量: 887018
2024年1月19日发(作者:continue语句的作用是重新开始一次)
对比项目 MySQLMS SQL SERVER
版权软件,收费
SQL Server2005官方报价5999美元/处理器或2799美元/Server
软件费用
开源软件, 大部分版本免费
Windows 任何 200美元
Unix或Linux 自行安装 免费
Unix或Linux 第三方安装
200美元
平台支持
数据类型
管理方式
开发软件
各种平台,比较适合unix平台 只能在Windows平台
字段类型多, 字符串最大支持多,字符串最大支持8000
65536
较容易 非常容易
C,C++,JAVA(JDBC),Perl,C,C++,JAVA(JDBC),aspPython,PHP and TCL 的API等
接口等
INNODB存储引擎下支持,速支持,速度比较快
度比较慢
较容易,不支持某些扩展SQL容易,支持扩展SQL语法
语法
支持中文
但开发和转移数据时容易出现全中文环境
中文字符问题
较难,速度快的是字符操作界容易,全是图形操作界面
面
比较难
比较高
较简单
容易
比较低
简单
更多
高
低
事务操作
SQL语法
中文支持
导入导出
维护监控
用户安全
备份恢复
第三方软件 多
染病毒风险 低
开发难度
存储过程
较高
INNODB存储引擎下支持,速支持,图形化查看编辑界面
度较慢
容易使用
不容易使用
支持,设置很容易 链接服务器 不支持
小型数据库主要处理的数据量比较小,几千、几万、几十万等,如access、mysql等。
大型数据库主要处理的数据量比较大,几百万,几千万或者上亿,主要有oracle、DB2、sqlserver等。
“可用最大存储量”MSSQL运行时可使用的内存最大值
“数据库最大规模”应该是一个MSSQL数据库能使用的最大磁盘空间.
速度对比:
1.大量事务操作的SQL(insert,update,delete)MS SQL Server比MySQL要快很多。
2.大表(600M物理文件)的查询SQLserver按索引的查询比MySQL快一些。
3.测试结果让我痛心。本来一直还以为mysql是最快的数据库....
结果如下:(单位为秒)
比较项目 mysql耗时 sqlserver耗时
连结时间 0.01364 0.28493
插入一万条纪录 2.80973 12.94204
更新一万条纪录 812.48759 50.34521
删除一万条纪录 184.05414 31.28243
SQL Server以很低的总体拥有成本提供了高质量,它为你的企业提供了一个全面的即开即用数据平台解决方案,而不需要昂贵的插件。
· 一组世界级的工具和一个集成的调试环境帮助降低了开发成本。
· SQL Server管理套件,旨在帮助创建自管理系统,帮助降低员工成本。
· 降低的TCO和更快的开发时间,以及在Windows Server产品间执行的通用工程策略。而且,Microsoft 提供许多SQL Server许可证和价格选择,每一个都提供了强大的支持。
MySQL免费提供它的Community Server。但是公司警告说,MySQL不提供支持和定期更新。如果你没有技术经验来靠你自己提供这些服务,那么购买这些服务是很昂贵的。
· 产品支持要求MySQL企业订阅$599到$4,999每服务器每年(MySQL企业选择)。
在MySQL上建立一个全面的解决方案需要额外的第三方工具,例如备份和商业智能,而其中许多是收费的。
上面是转载的,讲一些个人的经验吧,我公司的虚拟主机管理系统是我开发的,采用了.Net 和SQL Server的方案,而由于是经营虚拟主机,所以对这两种常见的数据库接触非常多,遇到的问题也多。
总体来说,性能上,数据量比较小,数据表结构比较简单的时候,比如10万数据,那么MySQL的效率在第一次检索的时候会比SQL Server快,注意,我提到了第一次检索,因为这两种数据库的承载平台是有区别的,Windows系统可能运行一年以后还会显示几个G的空余物理内存,而Linux/Unix启动后可能就会接管所有的物理内存,刚学Unix的时候还因为这个困惑过。所以在Linux/Unix下,进程要使用内存是会比Windows下的进程少等待一个步骤,所以内存页交换的开销会比较小,而Windows要先看剩余物理内存,够用了就拿来,不够用再去写页面文件(实际上在内存管理和调度上两个系统的区别是很大的,这里只是讲个简单的例子),所以Windows的内存调度性能肯定没有Linux/Unix好。SQL Server的运行是很有意思的,做过服务器维护的朋友应该注意到了,需要给SQL Server指定可以调用的物理内存上限,否则在一段时间之后(具体多少时间,要看负载情况,可能几秒钟就上来了)SQL Server就会吃掉所有的物理内存,我公司曾经接手两个日访问量上千万的站点,都是SQL Server数据库,Dell的1950,两颗Xeon 3.0,4G内存跑起来比较吃力的,因为并发太多了。SQL Server是典型的内存换性能,细心的朋友会发现,一个500M的数据库,如果做一次count或者sum或者其他需要检索整个表的操作,那么SQL
Server占用的物理内存立马就会蹿升到500多M,这里可以看出他性能来源,是把数据库缓冲在内存中了,内存操作的效率当然要比磁盘高,所以他性能高也就很正常的了,加上他是商业数据库,新版的SQL Server 2008性能已经很夸张了,后面会有详细数据。MySQL的内存占用是令人满意的,占用很小,而且不论我怎么调整,我见到MySQL占用内存的上限只有1.1G,当时也是个很极端的情况,一个用户的站点被人攻击,3万多并发持续请求PHP页面,是个论坛来的,后面挂接MySQL,IIS程序池占用的CPU已经导致一颗处理器核心满载了(四核,他用了25%),而MySQL却用掉了60%,超过两颗核心的负载,MySQL进程占用内存接近1.1G,因为他论坛的帖子较多,印象中是300多万还是800多万帖子,系统负载很高了,MySQL明显的反应迟缓,甚至检索超时。前边提到第一次检索的问题,也讲了原因,SQL Server第一次因为要缓冲到内存中,所以需要读取整个数据库物理文件,所以第一次检索的速度是被磁盘给拖住了,实际上Windows大多数程序第一次启动都会很慢,包括页面也是一样,但是过了第一次,速度就明显提升;而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的强壮性实在不敢恭维。
版权声明:本文标题:数据库速度对比 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705619072h492667.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论