MySQL和SQLServer的比较

转自: http://www.qqread.com/mysql/z442108305.html

对于程序开发人员而言,目前使用最流行的两种后台数据库即为MySQL和SQLServer。这两者最基本的相似之处在于数据存储和属于查询系统。你可以使用sql来访问这两种数据库的数据,因为它们都支持ansi-sql。 还有,这两种数据库系统都支持二进制关键词和关键索引,这就大大地加快了查询速度。同时,二者也都提供支持xml的各种格式。除了在显而易见的软件价格上的区别之外,这两个产品还有什么明显的区别吗?在这二者之间你是如何选择的?让我们看看这两个产品的主要的不同之处,包括发行费用,性能以及它们的安全性。

根本的区别是它们遵循的基本原则

二者所遵循的基本原则是它们的主要区别:开放vs保守。SQLServer服务器的狭隘的,保守的存储引擎与MySQL服务器的可扩展,开放的存储引擎绝然不同。虽然你可以使用SQLServer服务器的sybase引擎,但MySQL能够提供更多种的选择,如myisam, heap, innodb, and berkeley db。MySQL不完全支持陌生的关键词,所以它比SQLServer服务器要少一些相关的数据库。同时,MySQL也缺乏一些存储程序的功能,比如myisam引擎联支持交换功能。

发行费用:MySQL不全是免费,但很便宜

当提及发行的费用,这两个产品采用两种绝然不同的决策。对于SQLServer服务器,获取一个免费的开发费用最常的方式是购买微软的office或者visual studio的费用。但是,如果你想用于商业产品的开发,你必须还要购买sql server standard edition。学校或非赢利的企业可以不考虑这一附加的费用。

性能:先进的MySQL

纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式myisam。myisam 数据库与磁盘非常地兼容而不占用过多的cpu和内存。MySQL可以运行于windows系统而不会发生冲突,在unix或类似unix系统上运行则更好。你还可以通过使用64位处理器来获取额外的一些性能。因为MySQL在内部里很多时候都使用64位的整数处理。Yahoo!商业网站就使用MySQL作为后台数据库。

当提及软件的性能,SQLServer服务器的稳定性要比它的竞争对手强很多。但是,这些特性也要付出代价的。比如,必须增加额外复杂操作,磁盘存储,内存损耗等等。如果你的硬件和软件不能充分支持SQLServer服务器,我建议你最好选择其他如dbms数据库,因为这样你会得到更好的结果。

安全功能

MySQL有一个用于改变数据的二进制日志。因为它是二进制,这一日志能够快速地从主机上复制数据到客户机上。即使服务器崩溃,这一二进制日志也会保持完整,而且复制的部分也不会受到损坏。

在SQLServer服务器中,你也可以记录SQLServer的有关查询,但这需要付出很高的代价。

安全性

这两个产品都有自己完整的安全机制。只要你遵循这些安全机制,一般程序都不会出现什么问题。这两者都使用缺省的ip端口,但是有时候很不幸,这些ip也会被一些黑客闯入。当然,你也可以自己设置这些ip端口。

恢复性:先进的sql服务器

恢复性也是MySQL的一个特点,这主要表现在myisam配置中。这种方式有它固有的缺欠,如果你不慎损坏数据库,结果可能会导致所有的数据丢失。然而,对于SQLServer服务器而言就表现得很稳键。SQLServer服务器能够时刻监测数据交换点并能够把数据库损坏的过程保存下来。

根据需要决定你的选择

对于这两种数据库,如果非要让我说出到底哪一种更加出色,也许我会让你失望。以我的观点,任一对你的工作有帮助的数据库都是很好的数据库,没有哪一个数据库是绝对的出色,也没有哪一个数据库是绝对的差劲。我想要告诉你的是你应该多从你自己的需要出发,即你要完成什么样的任务?而不要单纯地从软件的功能出发。

如果你想建立一个.net服务器体系,这一体系可以从多个不同平台访问数据,参与数据库的管理,那么你可以选用SQLServer服务器。如果你想建立一个第三方站点,这一站点可以从一些客户端读取数据,那么MySQL将是最好的选择。 

这两者数据库都能够在.net或j2ee下运行正常,同样,都能够利用raid。

===========================
ORACLE、SQLSERVER、MYSQL与DB2的比较
http://book.chinaz.com/CSDN/phppost5/php39602.htm




以下被引用:


ORACLE 大型,完善,安全
SQLSERVER 简单,界面友好,WINDOWS平台下的好选择
MYSQL 免费,功能不错
DB2 超大型,与ORACLE类似






以下被引用:


ORACLE 大型,完善,安全
SQLSERVER 简单,界面友好,WINDOWS平台下的好选择
MYSQL 免费,功能不错
DB2 超大型,与ORACLE类似






以下被引用:


oracle:数据完整性,安全性要求较高的场合;
sqlserver(sybase和ms):ms的sqlserver简单,好用,用于企业级的数据应用,性能没有问题,支持所有大型rdbms的特性;
mysql:基本免费,适合个人网站及一些小企业的网站应用;
db2:大型数据库,特长在于信息的存取。






以下被引用:


Oracle 适用于较大型系统,但上手比较困难,即便上手后也很难提高。需要有长期的实践和摸索,但确实比较适合大系统。备份与恢复比较完善,但必需很有经验才能做的比较好。数据量不超过1T,可以用它
SqlServer:个人认为MS平台下最好用的数据库。界面简单友好,操作方便,备份与恢复都比较容易学会。而且学会SqlServer后与SYBASE也比较接近的。
MYSQL以前学PHP用的,感觉比较简单,无论是上手还是其本身的功能。
DB2我在AS/400上和MS平台都用过,感觉就是非常严谨,必须有非常规范的操作。如果数据量超过百G,建议用它。






以下被引用:


oracle其实已经没有什么可以夸耀的了,看看他今年的业绩也就知道了。他的技术现在就连微软都能实现了,从技术上看实在是没有什么理由值得采用
DB2 的数据仓库还是相当出色,数据挖掘也很不错,特别是集群技术可以使DB2的可扩性能达到极致。看看今年的业绩就知道DB2的优势了,当然它的价格比其他的略贵,不过还是可以接受,至少远远低于oracle的价格
Sybase已经快要消亡了,现在很少有新系统会采用这个东西了,反正我现在的公司已经放弃这个了
MySQL不错的东东,强烈推荐,但是用起来实在是另类,比如没有存储过程,如果不考虑集群,其实他的效率要远远高于oracle
SQL Server微软的东西,用起来感觉还不错,但是因为不能使用在UNIX上,所以企业,电信,政府都不是很愿意用。如果不是做ERP最好不要用这个东西,否则产品可能会买不出去

(0)

相关推荐

  • mssql转换mysql的方法小结

    方法一: 1.导表结构 使用MySQL生成create脚本的方法.找到生成要导出的脚本,按MySQL的语法修改一下到MySQL数据库中创建该表的列结构什么的. 2.导表数据 在MSSQL端使用bcp导出文本文件: bcp "Select * FROM dbname.dbo.tablename;" queryout tablename.txt -c -Slocalhost\db2005 -Usa 其中""中是要导出的sql语句,-c指定使用\t进行字段分隔,使用\n进

  • 找到一种不错的从SQLServer转成Mysql数据库的方法

    年初的时候一直在做一个网站MSSQL2000 -> MySQL5的迁移工作,因为采用了不同的程序系统,所以主要问题在数据的迁移.由于2个系统数据库结构差异非常大,不方便采取SQL SERVER里导入MYSQL的ODBC数据源的功能(也不推荐这么做,字段类型等不同点会搞死人的-),因此就在WINDOWS下自己写PHP脚本从SQLSERVER里读数据,然后按照新系统的需要处理之后插入MYSQL里面,灵活也比较方便.实际过程主要有下面几个问题: 1.数据库的连接,主要是连接SQL SERVER.主要有

  • 使用mss2sql工具将SqlServer转换为Mysql全记录

    今天想用ruby on rails做一个小项目,需要用到mysql数据库,项目中的数据已经有了,只不过是保存在Sql Server中,用rails倒是可以操作Sql Server,但是总感觉不怎么搭配,想转换后使用,网上翻了下,转换的办法有很多,通过ODBC的,通过PHP程序的,写SQL代码的,觉得转换还是用工具吧,先是用ODBC试着玩了下,发现Sql Server的导出功能对mysql ODBC的支持并不是太好 ODBC分32,64位,一开始下了个32位,在Win7 64位上面显示不出来,又从

  • MSSQL转MYSQL,gb2312转utf-8无乱码解决方法

    使用软件:MySQLMigrationTool 提示数据过大,无法导入.修改my.cnf文件的max_allowed_packet = 100M以上.在windows操作系统中,my.cnf有可能显示不出来,需要用编辑器直接输入地址:盘符:\目录mysql教程binmy.cnf打开. "there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause",MSSQL一个

  • MSSQL转MySQL数据库的实际操作记录

    以下的文章主要介绍的是MSSQL转MySQL数据库的一些记录的实际操作流程,以及在其实际操作中发现的问题的阐述,其中包括建表问题,编码问题,以下就是文章的主要主要内容描述,望你会有所收获. 今天把一个MSSQL的数据库转成MySQL,在没有转换工具的情况下,对于字段不多的数据表我用了如下手功转换的方法,还算方便.MSSQL使用企业管理器操作,MySQL用phpmyadmin操作. 1.用MSSQL企业管理器,打开表的结构(设计表),本地用phpmyadmin根据结构一个一个创建,同时优化了一下表

  • 简单实现SQLServer转MYSQL的方法

    本次转换需要依赖使用工具Navicat Premium. 首先,将数据库移至本地SQLServer,我试过直接在局域网上其他SQLServer服务器上想转到本地Mysql好像有问题,想将远程数据库备份恢复到本地. 1.打开Navicat Premium,新建一个同名的数据库,然后在表上点击"导入向导".并选择"ODBC". 2.选择SQLServer提供程序,并输入参数. 3.然后就拼命下一步.下一步. 在这里有个条件查询,如果有太多不想要的数据,或者字段类型有问题

  • SQLServer导出数据到MySQL实例介绍

    1从SQLServer导出数据 执行BCP: bcp "..." queryout "F:\test.txt" -c –S1.2.3.4 -Usa -P1111 命令参数含义: (1) 导入. 这个动作使用in命令完成,后面跟需要导入的文件名. (2) 导出. 这个动作使用out命令完成,后面跟需要导出的文件名. (3) 使用SQL语句导出. 这个动作使用queryout命令完成,它跟out类似,只是数据源不是表或视图名,而是SQL语句. (4) 导出格式文件. 这

  • 通过SQLServer 2008 操作 MySQL的方法

    数据库测试环境 1. SQL Server 2008 2. MySQL 5.1.36 Database: Test Table: TestTable 创建MySQL 测试表 复制代码 代码如下: CREATE TABLE `testtable` ( `id` int(11) DEFAULT NULL, `name` varchar(50) DEFAULT NULL, `age` int(11) DEFAULT NULL )  创建Link Server 下面来创建一个与MySQL交互的链接(类似

  • MySQL和SQLServer的比较

    转自: http://www.qqread.com/mysql/z442108305.html 对于程序开发人员而言,目前使用最流行的两种后台数据库即为MySQL和SQLServer.这两者最基本的相似之处在于数据存储和属于查询系统.你可以使用sql来访问这两种数据库的数据,因为它们都支持ansi-sql. 还有,这两种数据库系统都支持二进制关键词和关键索引,这就大大地加快了查询速度.同时,二者也都提供支持xml的各种格式.除了在显而易见的软件价格上的区别之外,这两个产品还有什么明显的区别吗?在

  • 浅谈Mysql、SqlServer、Oracle三大数据库的区别

    一.MySQL 优点: 体积小.速度快.总体拥有成本低,开源: 支持多种操作系统: 是开源数据库,提供的接口支持多种语言连接操作 : MySQL的核心程序采用完全的多线程编程.线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源.用多线程和C语言实现的mysql能很容易充分利用CPU: MySql有一个非常灵活而且安全的权限和口令系统.当客户与MySql服务器连接时,他们之间所有的口令传送被加密,而且MySql支持主机认证: 支持ODBC for Windows, 支持所有的ODB

  • Docker部署Mysql,.Net6,Sqlserver等容器

    Centos8安装Docker 1.更新一下yum [root@VM-24-9-centos ~]# yum -y update 2.安装containerd.io # centos8默认使用podman代替docker,所以需要containerd.io [root@VM-24-9-centos ~]# yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2

  • 使用java web 在jsp文件及Class中连接MySQL和SQLserver 的驱动方法

    --方法一 使用java web 在jsp文件中连接 连接MySQL的驱动 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@page import="java.sql.Connection"%> <%@page import="java.sql.DriverManager"%>

  • PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】

    本文实例讲述了PHP基于pdo的数据库操作类.分享给大家供大家参考,具体如下: 工作中需要操作sqlserver.oracle都是使用的这个类,当时是在别人的基础上改进了,现在分享下 <?php class Pdodb{ protected $pdo; protected $res; protected $config; /*构造函数*/ function __construct($config){ $this->Config = $config; $this->connect(); }

  • 使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)

    1.PHP连接MYSQL数据库的代码 <?php $mysql_server_name='localhost'; //改成自己的mysql数据库服务器 $mysql_username='root'; //改成自己的mysql数据库用户名 $mysql_password='12345678'; //改成自己的mysql数据库密码 $mysql_database='mycounter'; //改成自己的mysql数据库名 $conn=mysql_connect($mysql_server_name,

  • 与MSSQL对比学习MYSQL的心得(八)--插入 更新 删除

    同样的,只会讲解跟SQLSERVER不同的地方 插入 将多行查询结果插入到表中 语法 INSERT INTO table_name1(column_list1) SELECT (column_list2) FROM table_name2 WHERE (condition) INSERT INTO SELECT 在SQLSERVER里也是支持的 table_name1指定待插入数据的表:column_list1指定待插入表中要插入数据的哪些列:table_name2指定插入数据是从 哪个表中查询

  • MySQL与Oracle的语法区别详细对比

    Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; SQL> select to_char(sysdate,'hh24-mi-ss') from dual; mysql> select date_format(now(),'%Y-%m-%d'); mysql> select time_format(now(),'%H-%i-%S'); 日期函数 增加一个月: SQL> se

  • 与MSSQL对比学习MYSQL的心得(一)--基本语法

    这一期主要是学习MYSQL的基本语法,陆续还会有续期的文章,敬请期待 语法的差异 我这里主要说语法的不同 1.默认约束 区别:mysql里面DEFAULT关键字后面是不用加括号的 复制代码 代码如下: --sqlserverCREATE TABLE emp(id INT DEFAULT(12))--mysqlCREATE TABLE emp(id INT DEFAULT 12) 2.设置自增列 区别很大,不过好像mysql的自增列不能设置步长的 MYSQL的自增列一定也要是主键列,不是主键列会报

  • php操作sqlserver关于时间日期读取的小小见解

    上周五,要做一个php 同时对mysql数据库和sqlserver数据库的连接东东 以前一直在用mysql对sqlserver不是很熟悉,于是摸着石头过河.没有别的至少mysql和sqlserver还算是亲戚 在做条件查询的时候.出现了问题 首先是查询出来的时间是这种格式的 11 30 2009 10:20:20AM 我打开sqlserver数据库查看表中的数据 却是2009-11-30 10:20:20.233 后来查了查好像sqlserver有个格式问题,但是输出的时候要的是2009-11-

随机推荐