除了最初的成本,使用MySQL比使用。net使用MSQL服务器还有什么好处吗?

时间:2023-02-03 21:03:08

I've used both and I've found MySql to have several frustrating bugs, limited support for: IDE integration, profiling, integration services, reporting, and even lack of a decent manager. Total cost of ownership of MSSQL Server is touted to be less than MySQL too (.net environment), but maintaining an open mind could someone point out any killer features of MySql?

我已经使用了这两种工具,我发现MySql有几个令人沮丧的bug,对IDE集成、概要分析、集成服务、报告,甚至缺乏一个像样的管理器的支持。拥有MSSQL服务器的总成本也被吹捧为低于MySQL (.net环境),但是保持开放的心态,有人能指出MySQL的致命特性吗?

7 个解决方案

#1


2  

I've used MySQL in the past and I'm using MSSQL lately but I can't remember anything that MySQL has and MSSQL can't do.

我过去使用过MySQL,最近使用的是MSSQL,但我不记得MySQL和MSSQL不能做的任何事情。

I think the most killer feature of MySQL it's the simplicity. For some projects you just don't need all the power you can have with a huge system like MSSQL. I have an UNIX heritage and find the simple configuration file like my.ini a killer feature of MySQL.

我认为MySQL最致命的特点就是简单。对于某些项目,您不需要像MSSQL这样的大型系统所能提供的所有功能。我有一个UNIX传统,并找到了简单的配置文件。这是MySQL的一个致命特性。

Also the security system of MySQL is much less robust but it makes the job right for most of applications. I believe MySQL it's killer itself from this point of view, and should stay that way, letting young users being introduced to RDBMS with a simple view first. If your project gets big enough that you are considering switch to a more robust system, then MSSQL can pop as a possibility.

另外,MySQL的安全系统也不那么健壮,但它使大多数应用程序的工作都是正确的。我认为从这个角度来看,MySQL是致命的,应该保持这种方式,让年轻用户首先通过一个简单的视图被引入RDBMS。如果您的项目足够大,您正在考虑切换到一个更健壮的系统,那么MSSQL可以作为一种可能。

That's what happened to me.

我就是这样的。

#2


1  

The only thing I can think of, off hand, is locking. SQLServer has traditionally had poor locking strategy that has tripped many people up.

我能想到的唯一一件事,就是立即锁定。SQLServer传统上有糟糕的锁定策略,这使许多人陷入困境。

You should use what you prefer, ultimately. Its not as if MySQL is not good enough to compete with MS SQL, eg. Slashdot uses MySQL, so its hardly got problems with high-scalability performance.

最终,你应该用你喜欢的东西。这并不是说MySQL不够好,无法与SQL女士竞争。Slashdot使用的是MySQL,因此它在高扩展性性能上几乎没有问题。

Its killer feature though, is that it is free - you can deploy as many of them without worrying one fig about licensing issues. That's more important for the spread of software than anyone could imagine.

不过,它的致命特点是,它是免费的——您可以在不担心任何许可问题的情况下部署它们中的许多。这对软件的传播比任何人想象的都重要。

(TCO is a difficult thing to calculate - and is advice only ever given from paid consultants and other vested interests. Ignore that. MSSQL is expensive and MySQL is free.)

(TCO是一种很难计算的东西——而且它只从付费顾问和其他既得利益者那里得到建议。忽略这一点。MSSQL是昂贵的,而MySQL是免费的。

#3


1  

About 6 years ago I developed a custom e-commernce website using ASP and MySQL for the database. At the time MySQL was clearly a better choice than MSDE which had built in throttling which concerned me enough to use MySQL. Also the difference in coding between using MySQL and MSDE/SQL was not that different or much of a concern.

大约6年前,我为数据库开发了一个使用ASP和MySQL的定制电子商务网站。当时,MySQL显然是比MSDE更好的选择,MSDE内置了节流功能,这让我非常担心使用MySQL。此外,使用MySQL和MSDE/SQL之间的编码差异也不是那么大,也不是很值得关注。

Now all these years later I'm trying to get the code converted to .NET and even after purchasing commercial MySQL drivers from CRLab. I found that, as you hinted, the IDE integration is just not up to par.

这些年来,我一直试图将代码转换成。net,甚至在从CRLab购买了商业MySQL驱动之后。我发现,正如您所暗示的,IDE集成并没有达到标准。

I will say that MySQL is doing a great job even with our database tables approaching 4GB. So when I switch to MSSQL I have to go ahead and get SQL Workstation or higher ($$$), and not use SQL Express which has a 4gb limit.

我要说,MySQL在数据库表接近4GB的情况下仍然做得很好。因此,当我切换到MSSQL时,我必须继续使用SQL工作站或更高的($$),而不使用具有4gb限制的SQL Express。

All of my experience has changed the way I develop new websites. Now, unless it is expected to have a lot of traffic. I use VistaDB and then upgrade to SQL Server if needed. VistaDB is syntax and datasource compatible with SQL Server. And the best part is it is only a single file for the database and a dll for your bin folder.

我所有的经历都改变了我开发新网站的方式。现在,除非它预计会有大量的交通。我使用VistaDB,然后在需要时升级到SQL Server。VistaDB是与SQL Server兼容的语法和数据源。最好的部分是它只是数据库的一个文件和你的bin文件夹的一个dll。

That's my two cents based on my personal experience with using MySQL in ASP and now .NET.

这是我个人在ASP和。net中使用MySQL的经验。

#4


1  

I work with MSSQL, MySql and PostGres regularly (using .net, java and PHP). One of my favorite things about about MySQL (esp. compared to MSSQL) is the ease with which you can run and restore full database backups.

我经常使用MSSQL、MySql和PostGres(使用.net、java和PHP)。与MSSQL相比,我最喜欢MySQL的一点是可以轻松地运行和恢复完整的数据库备份。

MSSQL's model of using .bak files is really ugly and time-consuming (topic for another post.) But if you want to do somethign like automated testing, or automated build processes (that include building a db from scratch), MySQL can be a bit easier to deal with.

MSSQL使用.bak文件的模型非常丑陋和耗时(另一个帖子的主题)。但是,如果您想进行自动化测试或自动构建过程(包括从头构建db)之类的设计,那么MySQL可能更容易处理。

A few other points:

其他几个点:

The management tools have gotten a lot better since the early days.

从早期开始,管理工具就变得更好了。

If you are interested in transactions, constraints, etc.. be sure you are defining your tables to use the InnoDB storage engine (instead of MyISAM which is designed for speed.)

如果您对事务、约束等感兴趣。确保您正在定义您的表以使用InnoDB存储引擎(而不是为速度设计的MyISAM)。

I do miss MSSQL's schema generating tool, but I think there are equivalent tools out there.

我确实很想念MSSQL的模式生成工具,但是我认为有相当的工具。

We've used a Linux database server and a window's web server (for .net apps) with great success.

我们已经成功地使用了Linux数据库服务器和一个窗口的web服务器(对于。net应用程序)。

If you are using something like NHibernate or some other non-MS data abstraction layer, the case to look beyond MSSQL is stronger too...

如果您正在使用NHibernate或其他非ms数据抽象层之类的东西,那么查看MSSQL之外的内容也更有必要……

#5


1  

Three points to consider; unfortunately the first two are contradictory:

三个点来考虑;不幸的是,前两者是矛盾的:

1) .NET and MySQL were not designed to interact with one another, and there is no official support from either side. You're invariably going to encounter issues trying to use them together.

1) . net和MySQL并不是为相互交互而设计的,双方都没有官方的支持。你总是会遇到一些问题,试图把它们结合在一起。

2) If portability off of Windows may ever be an issue (much .NET code runs quite nicely on other platforms via Mono), you'll want to avoid locking yourself too deeply to MSSQL. That doesn't mean not using it, but being careful that you don't rely on its particular quirks too much.

2)如果Windows下的可移植性可能是一个问题(许多. net代码通过Mono在其他平台上运行得很好),那么您应该避免将自己锁定在MSSQL中。这并不意味着不使用它,而是要小心,不要过于依赖它的特殊怪癖。

3) TCO is just a buzzword. It's complete nonsense when it's calculated by anyone other than you. Nobody can make such a calculation and honestly claim that it has any relevance outside their particular environment. There are too many factors, most of which have absolutely nothing to do with things like tool availability.

TCO只是一个流行词。这完全是胡说八道,如果不是你计算的话。没有人能够做出这样的计算,并诚实地宣称它与他们所处的特定环境无关。有太多的因素,其中大部分与工具可用性等完全无关。

#6


0  

I've been using the community version of MySQL for alsmost 99% of my project. I like MySQL is that I can deploy via Xcopy and is powerful compare to other "xcopy-able" database server. I also wrote a wrapper to start and stop MySQL & Apache (like LAMP), but with my own implemetation and addon capability

我一直在使用社区版本的MySQL来完成我99%的项目。我喜欢MySQL,因为它可以通过Xcopy进行部署,与其他“可Xcopy”数据库服务器相比,它的功能非常强大。我还编写了一个包装器来启动和停止MySQL和Apache(如LAMP),但是使用了我自己的实现和addon功能。

#7


-4  

MySQL probably has a lower TCO, since administration and configuration is more simple and straightforward than the Spaghetti GUI that MS SQL makes you do most of the configuration through, having to dig through hundreds of obscure properties dialogs to accomplish even basic administration tasks.

MySQL可能具有较低的TCO,因为管理和配置比MS SQL让您完成大部分配置的意大利面GUI更简单和直接,甚至需要挖掘数百个模糊的属性对话框来完成基本的管理任务。

There is one area where MS SQL clearly excels over MySQL in my experience:

在我的经验中,有一个地方的MS SQL明显优于MySQL:

  • Integration with other technologies. MS SQL allows you to replicate back and forth with Oracle and MySQL databases, and provides SSIS for executing scheduled data transformations from other database servers.
  • 与其他技术的集成。MS SQL允许您使用Oracle和MySQL数据库来回复制,并为执行来自其他数据库服务器的计划数据转换提供SSIS。

There may be others, but I don't have experience with them.

也许还有其他的,但是我没有和他们相处的经验。

#1


2  

I've used MySQL in the past and I'm using MSSQL lately but I can't remember anything that MySQL has and MSSQL can't do.

我过去使用过MySQL,最近使用的是MSSQL,但我不记得MySQL和MSSQL不能做的任何事情。

I think the most killer feature of MySQL it's the simplicity. For some projects you just don't need all the power you can have with a huge system like MSSQL. I have an UNIX heritage and find the simple configuration file like my.ini a killer feature of MySQL.

我认为MySQL最致命的特点就是简单。对于某些项目,您不需要像MSSQL这样的大型系统所能提供的所有功能。我有一个UNIX传统,并找到了简单的配置文件。这是MySQL的一个致命特性。

Also the security system of MySQL is much less robust but it makes the job right for most of applications. I believe MySQL it's killer itself from this point of view, and should stay that way, letting young users being introduced to RDBMS with a simple view first. If your project gets big enough that you are considering switch to a more robust system, then MSSQL can pop as a possibility.

另外,MySQL的安全系统也不那么健壮,但它使大多数应用程序的工作都是正确的。我认为从这个角度来看,MySQL是致命的,应该保持这种方式,让年轻用户首先通过一个简单的视图被引入RDBMS。如果您的项目足够大,您正在考虑切换到一个更健壮的系统,那么MSSQL可以作为一种可能。

That's what happened to me.

我就是这样的。

#2


1  

The only thing I can think of, off hand, is locking. SQLServer has traditionally had poor locking strategy that has tripped many people up.

我能想到的唯一一件事,就是立即锁定。SQLServer传统上有糟糕的锁定策略,这使许多人陷入困境。

You should use what you prefer, ultimately. Its not as if MySQL is not good enough to compete with MS SQL, eg. Slashdot uses MySQL, so its hardly got problems with high-scalability performance.

最终,你应该用你喜欢的东西。这并不是说MySQL不够好,无法与SQL女士竞争。Slashdot使用的是MySQL,因此它在高扩展性性能上几乎没有问题。

Its killer feature though, is that it is free - you can deploy as many of them without worrying one fig about licensing issues. That's more important for the spread of software than anyone could imagine.

不过,它的致命特点是,它是免费的——您可以在不担心任何许可问题的情况下部署它们中的许多。这对软件的传播比任何人想象的都重要。

(TCO is a difficult thing to calculate - and is advice only ever given from paid consultants and other vested interests. Ignore that. MSSQL is expensive and MySQL is free.)

(TCO是一种很难计算的东西——而且它只从付费顾问和其他既得利益者那里得到建议。忽略这一点。MSSQL是昂贵的,而MySQL是免费的。

#3


1  

About 6 years ago I developed a custom e-commernce website using ASP and MySQL for the database. At the time MySQL was clearly a better choice than MSDE which had built in throttling which concerned me enough to use MySQL. Also the difference in coding between using MySQL and MSDE/SQL was not that different or much of a concern.

大约6年前,我为数据库开发了一个使用ASP和MySQL的定制电子商务网站。当时,MySQL显然是比MSDE更好的选择,MSDE内置了节流功能,这让我非常担心使用MySQL。此外,使用MySQL和MSDE/SQL之间的编码差异也不是那么大,也不是很值得关注。

Now all these years later I'm trying to get the code converted to .NET and even after purchasing commercial MySQL drivers from CRLab. I found that, as you hinted, the IDE integration is just not up to par.

这些年来,我一直试图将代码转换成。net,甚至在从CRLab购买了商业MySQL驱动之后。我发现,正如您所暗示的,IDE集成并没有达到标准。

I will say that MySQL is doing a great job even with our database tables approaching 4GB. So when I switch to MSSQL I have to go ahead and get SQL Workstation or higher ($$$), and not use SQL Express which has a 4gb limit.

我要说,MySQL在数据库表接近4GB的情况下仍然做得很好。因此,当我切换到MSSQL时,我必须继续使用SQL工作站或更高的($$),而不使用具有4gb限制的SQL Express。

All of my experience has changed the way I develop new websites. Now, unless it is expected to have a lot of traffic. I use VistaDB and then upgrade to SQL Server if needed. VistaDB is syntax and datasource compatible with SQL Server. And the best part is it is only a single file for the database and a dll for your bin folder.

我所有的经历都改变了我开发新网站的方式。现在,除非它预计会有大量的交通。我使用VistaDB,然后在需要时升级到SQL Server。VistaDB是与SQL Server兼容的语法和数据源。最好的部分是它只是数据库的一个文件和你的bin文件夹的一个dll。

That's my two cents based on my personal experience with using MySQL in ASP and now .NET.

这是我个人在ASP和。net中使用MySQL的经验。

#4


1  

I work with MSSQL, MySql and PostGres regularly (using .net, java and PHP). One of my favorite things about about MySQL (esp. compared to MSSQL) is the ease with which you can run and restore full database backups.

我经常使用MSSQL、MySql和PostGres(使用.net、java和PHP)。与MSSQL相比,我最喜欢MySQL的一点是可以轻松地运行和恢复完整的数据库备份。

MSSQL's model of using .bak files is really ugly and time-consuming (topic for another post.) But if you want to do somethign like automated testing, or automated build processes (that include building a db from scratch), MySQL can be a bit easier to deal with.

MSSQL使用.bak文件的模型非常丑陋和耗时(另一个帖子的主题)。但是,如果您想进行自动化测试或自动构建过程(包括从头构建db)之类的设计,那么MySQL可能更容易处理。

A few other points:

其他几个点:

The management tools have gotten a lot better since the early days.

从早期开始,管理工具就变得更好了。

If you are interested in transactions, constraints, etc.. be sure you are defining your tables to use the InnoDB storage engine (instead of MyISAM which is designed for speed.)

如果您对事务、约束等感兴趣。确保您正在定义您的表以使用InnoDB存储引擎(而不是为速度设计的MyISAM)。

I do miss MSSQL's schema generating tool, but I think there are equivalent tools out there.

我确实很想念MSSQL的模式生成工具,但是我认为有相当的工具。

We've used a Linux database server and a window's web server (for .net apps) with great success.

我们已经成功地使用了Linux数据库服务器和一个窗口的web服务器(对于。net应用程序)。

If you are using something like NHibernate or some other non-MS data abstraction layer, the case to look beyond MSSQL is stronger too...

如果您正在使用NHibernate或其他非ms数据抽象层之类的东西,那么查看MSSQL之外的内容也更有必要……

#5


1  

Three points to consider; unfortunately the first two are contradictory:

三个点来考虑;不幸的是,前两者是矛盾的:

1) .NET and MySQL were not designed to interact with one another, and there is no official support from either side. You're invariably going to encounter issues trying to use them together.

1) . net和MySQL并不是为相互交互而设计的,双方都没有官方的支持。你总是会遇到一些问题,试图把它们结合在一起。

2) If portability off of Windows may ever be an issue (much .NET code runs quite nicely on other platforms via Mono), you'll want to avoid locking yourself too deeply to MSSQL. That doesn't mean not using it, but being careful that you don't rely on its particular quirks too much.

2)如果Windows下的可移植性可能是一个问题(许多. net代码通过Mono在其他平台上运行得很好),那么您应该避免将自己锁定在MSSQL中。这并不意味着不使用它,而是要小心,不要过于依赖它的特殊怪癖。

3) TCO is just a buzzword. It's complete nonsense when it's calculated by anyone other than you. Nobody can make such a calculation and honestly claim that it has any relevance outside their particular environment. There are too many factors, most of which have absolutely nothing to do with things like tool availability.

TCO只是一个流行词。这完全是胡说八道,如果不是你计算的话。没有人能够做出这样的计算,并诚实地宣称它与他们所处的特定环境无关。有太多的因素,其中大部分与工具可用性等完全无关。

#6


0  

I've been using the community version of MySQL for alsmost 99% of my project. I like MySQL is that I can deploy via Xcopy and is powerful compare to other "xcopy-able" database server. I also wrote a wrapper to start and stop MySQL & Apache (like LAMP), but with my own implemetation and addon capability

我一直在使用社区版本的MySQL来完成我99%的项目。我喜欢MySQL,因为它可以通过Xcopy进行部署,与其他“可Xcopy”数据库服务器相比,它的功能非常强大。我还编写了一个包装器来启动和停止MySQL和Apache(如LAMP),但是使用了我自己的实现和addon功能。

#7


-4  

MySQL probably has a lower TCO, since administration and configuration is more simple and straightforward than the Spaghetti GUI that MS SQL makes you do most of the configuration through, having to dig through hundreds of obscure properties dialogs to accomplish even basic administration tasks.

MySQL可能具有较低的TCO,因为管理和配置比MS SQL让您完成大部分配置的意大利面GUI更简单和直接,甚至需要挖掘数百个模糊的属性对话框来完成基本的管理任务。

There is one area where MS SQL clearly excels over MySQL in my experience:

在我的经验中,有一个地方的MS SQL明显优于MySQL:

  • Integration with other technologies. MS SQL allows you to replicate back and forth with Oracle and MySQL databases, and provides SSIS for executing scheduled data transformations from other database servers.
  • 与其他技术的集成。MS SQL允许您使用Oracle和MySQL数据库来回复制,并为执行来自其他数据库服务器的计划数据转换提供SSIS。

There may be others, but I don't have experience with them.

也许还有其他的,但是我没有和他们相处的经验。