萌萌妈妈 发表于 2015-1-16 20:10:34

发一篇MS SQL Server和MySQL区分

下面我将描述五个不使用MySQL的响亮理由。比来在做MSSQLServer转换成MySQL的事情,总结了点履历,跟人人分享一下。同时这些也会在不休更新。也但愿人人增补。  1MySQL撑持enum,和set范例,SQLServer不撑持

  2MySQL不撑持nchar,nvarchar,ntext范例

  3MySQL的递增语句是AUTO_INCREMENT,而MSSQL是identity(1,1)

  4MSSQL默许各处表创立语句的默许值暗示是((0)),而在MySQL内里是不同意带两括号的

  5MySQL必要为表指定存储范例

  6MSSQL辨认符是[],暗示他区分于关头字,可是MySQL倒是`,也就是按键1右边的谁人标记

  7MSSQL撑持getdate()办法猎取以后工夫日期,可是MySQL内里能够分日期范例和工夫范例,猎取以后日期是cur_date(),以后完全工夫是now()函数

  8MSSQL不撑持replaceinto语句,可是在最新的sql20008内里,也撑持merge语法

  9MySQL撑持insertintotable1sett1=‘’,t2=‘’,可是MSSQL不撑持如许写

  10MySQL撑持insertintotabl1values(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1)

  11MSSQL不撑持limit语句,长短常遗憾的,只能用top代替limt0,N,row_number()over()函数代替limitN,M

  12MySQL在创立表时要为每一个表指定一个存储引擎范例,而MSSQL只撑持一种存储引擎

  13MySQL不撑持默许值为以后工夫的datetime范例(MSSQL很简单做到),在MySQL内里是用timestamp范例

  14MSSQL内里反省是不是有这个表再删除,必要如许:

ifexists(select*fromdbo.sysobjectswhereid=object_id(Nuc_newpm)andOBJECTPROPERTY(id,NIsUserTable)=1)可是在MySQL内里只必要DROPTABLEIFEXISTScdb_forums;



  可是在MySQL内里只必要DROPTABLEIFEXISTScdb_forums;

  15MySQL撑持无标记型的整数,那末比不撑持无标记型的MSSQL就可以多出一倍的最年夜数存储

  16MySQL不撑持在MSSQL内里利用十分便利的varchar(max)范例,这个范例在MSSQL内里既可做一样平常数据存储,也能够做blob数据存储

  17MySQL创立非会萃索引只必要在创立表的时分指定为key就行,好比:KEYdisplayorder(fid,displayorder)在MSSQL内里必需要:

createuniquenonclusteredindexindex_uc_protectedmembers_username_appidondbo.uc_protectedmembers(usernameasc,appidasc)



  18MySQLtext字段范例不同意有默许值

  19MySQL的一个表的统共字段长度不凌驾65XXX。

  20一个很外表的区分就是MySQL的安装出格复杂,并且文件巨细才110M(非安装版),比拟微软这个庞然年夜物,安装进度来讲几乎就是.....

  21MySQL的办理工具有几个对照好的,MySQL_front,和官方谁人套件,不外都没有SSMS的利用便利,这是MySQL很年夜的一个弱点。

  22MySQL的存储历程只是呈现在最新的版本中,不乱性和功能大概不如MSSQL。

  23一样的负载压力,MySQL要损耗更少的CPU和内存,MSSQL切实其实是很耗资本。

  24php毗连MySQL和MSSQL的体例都差未几,只必要将函数的MySQL交换成MSSQL便可。

  25MySQL撑持date,time,year范例,MSSQL到2008才撑持date和time。
表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。

谁可相欹 发表于 2015-1-18 18:20:08

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?

深爱那片海 发表于 2015-1-25 14:42:56

习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。

柔情似水 发表于 2015-2-2 22:31:52

以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了

仓酷云 发表于 2015-2-8 16:11:02

原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。

灵魂腐蚀 发表于 2015-2-25 20:41:07

对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。

因胸联盟 发表于 2015-3-8 05:16:36

语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!

分手快乐 发表于 2015-3-15 21:57:09

入门没那么困难,精通没那么容易

冷月葬花魂 发表于 2015-3-22 05:17:52

个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
页: [1]
查看完整版本: 发一篇MS SQL Server和MySQL区分