当前位置:  开发笔记 > 编程语言 > 正文

MySQL和SQL Server之间的差异

如何解决《MySQL和SQLServer之间的差异》经验,为你挑选了7个好方法。

我是一名ASP.NET开发人员,他已经用于Microsoft SQL Server满足我所有的数据库需求(无论是在工作中还是在个人项目中).

我正在考虑为我的一些个人项目试用LAMP堆栈.

MySQL和之间有哪些主要区别SQL Server?使用存储过程是一种常见的做法MySQL吗?

您建议的任何建议或资源可以帮助我切换?

对于那些对两者都有经验的人,是否有任何缺失的功能MySQL



1> Jeff Atwood..:

您必须注意的一件事是SQL Server和MySQL实现SQL语法的方式存在相当严重的差异.

这是不同SQL实现的一个很好的比较.

例如,看一下top-n部分.在MySQL中:

SELECT age
FROM person
ORDER BY age ASC
LIMIT 1 OFFSET 2

在SQL Server(T-SQL)中:

SELECT TOP 3 WITH TIES *
FROM person
ORDER BY age ASC


和oracle也不一样:select*from(选择年龄从人的顺序以前的asc)其中rownum <= 3回来ANSI SQL,一切都被原谅:)
也许是一个愚蠢的评论,但为什么不能有1个SQL语言?? ...有不同的HTML ?? ...所以为什么不1 sql.
刚遇到这个.阅读所有的差异让我感到畏缩.基础是相同的(至少在理解方面),但细节是非常非常不同的.
@greaterKing HTML是一个委员会/联盟的集合结构和标准,SQL ..不是,它只是一种脚本语言,唯一的所有者是解释器的开发者.它有点像Javascript,每个浏览器都有自己的JS引擎和自己解释脚本的方式.只有来自社区的压力才能使这种语言得到某种团结的努力.但男人,我希望他们都非常相似,只有微小的差别
T-SQL转换为Transact-SQL;)Sql Server包含语言(T-SQL),但它是一个整体的软件,具有GUI,本地处理和通过网络处理请求等。

2> Remy..:

这里的很多评论听起来更像宗教论点而不是现实生活中的陈述.我已经使用MySQL和MSSQL工作了多年,两者都是很好的产品.我主要根据您正在处理的环境选择MySQL.大多数开源项目都使用MySQL,因此如果您朝着这个方向前进,MySQL就是您的选择.如果你用.Net开发一些东西我会选择MSSQL,不是因为它好多了,而是因为这是大多数人使用的.我实际上目前正在使用ASP.NET与MySQL和C#的项目.它工作得很好.


编程就是现在的缩略词.我们举一个例子来谈谈一个"Lamp Stack".很多人可能会说LAMP或WAMP.同样,我们不是说Microsoft SQL Server,而是将MS SQL Server变为MS SQL到MSSQL
严格来说,你不认为没有像MS SQL那样的东西.存在的东西是"MS SQL Server".
那是正确的.Microsoft SQL Server 2012或您使用的任何版本.
我不确定你在问什么?

3> ely..:

我无法相信没有人提到MySQL不支持Common Table Expressions(CTE)/"with"语句.这是一个非常烦人的差异.


递归是需要提及的一个好处.
@Jared使用CTE可以使代码保持可读性,因为您不需要定义临时表及其列类型,并且通过使用cte,您甚至可以获得列类型和名称的智能感知,即使您没有指定它们.
Mysql 8支持CTE

4> Jon Galloway..:

MySQL更有可能出现数据库损坏问题,并且当它们发生时它不会自动修复它们.我从6.5版本开始使用MSSQL,并且不记得数据库脱机时的数据库损坏问题.我曾在生产环境中与MySQL合作过几次,数据库损坏问题使整个数据库脱机,直到我们从命令行运行魔法"请修复我的损坏的索引".

根据我的经验,MSSQL的事务和日志系统几乎可以处理任何事情 - 包括电源循环或硬件故障 - 没有数据库损坏,如果出现问题,它会自动修复它.

这是我的经验,我很高兴听到这已经修复或我们做错了什么.

http://dev.mysql.com/doc/refman/6.0/en/corrupted-myisam-tables.html

http://www.google.com/search?q=site%3Abugs.mysql.com+index+corruption


很公平,但忽略基于Access的Microsoft数据库是愚蠢的.访问它是一个桌面数据库,与SQL Server无关.你知道StackOverflow在SQL Server上运行,对吗?

5> Abdu..:

坦率地说,我找不到使用MySQL而不是MSSQL的单一理由.之前的问题是成本,但SQL Server 2005 Express是免费的,并且有很多网络托管公司提供完全托管sql server每月不到$ 5.00.

MSSQL更易于使用,并且具有MySQL中不存在的许多功能.


我会说许可是使用MySQL的一个很好的理由.
Group_concat和REGEXP是使用MySQL而不是SQL Server的充分理由(即使切换了两个许可证)
我认为价格是选择MySQL而不是MSSQL的唯一真正原因.当然,有一些廉价的MSSQL托管,但它很少见,而且往往严重限制存储.
Downvoted,因为我认为这是有偏见的,显然不准确地说,没有一个理由可以使用MySQL而不是MSSQL.SQL Server Express有严重的限制,MySQL没有,并且没有严肃的项目将使用Express,这意味着成本问题仍然非常有效.大多数最大的公司选择MySQL/MariaDB而不是MSSQL.就个人而言,我也是,不仅仅是因为许可和成本问题,而且因为根据我的经验,MySQL更容易使用.MySQL往往只是工作,而我发现自己偶尔与MSSQL战斗,让它做我想做的事情.

6> dkretz..:

MySQL中的所有内容似乎都比MSSQL更接近金属,而且文档以这种方式对待它.特别是对于优化,您需要了解索引,系统配置和优化器在各种情况下的交互方式.

"优化器"更像是一个解析器.在MSSQL中,您的查询计划通常是一个惊喜(通常是好的,有时不是).在MySQL中,它几乎完成了你要求它做的事情,就像你期望的那样.这意味着您自己需要深入了解可能采取的各种方式.

不是围绕一个好的TRANSACTION模型(默认的MyISAM引擎)构建的.

文件系统设置是你的问题.

所有数据库配置都是您的问题 - 尤其是各种缓存大小.

有时似乎最好将它视为一种特殊的,美化的isam.Codd和Date在这里没有多大意义.他们会说没有尴尬.


现代MySQL默认为Innodb,只是澄清一点.我想5.1后左右.Innodb支持事务,外键和行级锁定,而不是使用MyISAM进行表级锁定.

7> Jon Limjap..:

我认为需要注意的一个主要问题是MySQL 5.0之前的版本没有视图,触发器和存储过程.

在MySQL 5.0下载页面中解释了更多这方面的内容.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有