一、mysql和sql server的历史进程

1、mysql

1.1 mysql是什么?

MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。mysql常常和linux系统以及php语言联系在一起。mysql被甲骨文公司收购后,大家担心会由开源转变成闭源,因此由mysql出了一个分支MariaDB目的是完全兼容MYSQL,包括API和命令行,使之可以轻松替代MYSQL。LINUX系统一般自带MariaDB,它的语法以及使用和MYSQL保持一致,学习MYSQL时可以使用其作为替换。

1.2 mysql的优缺点

(1)支持5000万条记录的数据仓库;
(2)适应于所有的平台;
(3)是开源软件,版本更新较快;
(4)性能很出色。纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式MyISAM。MyISAM 数据库与磁盘非常地兼容而不占用过多的CPU和内存。MySQL可以运行于Windows系统而不会发生冲突,在UNIX或类似UNIX系统上运行则更好。可以通过使用64位处理器来获取额外的一些性能。因为MySQL在内部里很多时候都使用64位的整数处理;
(5)价格便宜

缺点: 缺乏一些存储程序的功能,不支持陌生的关键字,采用缺省的端口IP(也是优点),容易被黑客侵入。MyISAM(MySQL的默认存储引擎,另一个是innoDB)并不支持事务处理。

1、sql server

1.1 sql server是什么

SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。
Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。

1.2 sql server的优缺点

( 1) 扩展性强:当系统要更高数据库处理速度时,只要简单地增加数据库服务器就 可以得到扩展。
(2) 可维护性:当某节点发生故障时,系统会自动检测故障并转移故障节点的应用,保证数据库的持续工作。
(3) 安全性:因为数据会同步的多台服务器上,可以实现数据集的冗余,通过多份数据来保证安全性。另外它成功地将数据库放到了内网之中,更好地保护了数据库的安全性。
(4) 易用性:对应用来说完全透明,集群暴露出来的就是一个IP
(1) 不能够按照Web服务器的处理能力分配负载。
(2) 负载均衡器(控制端)故障,会导致整个数据库系统瘫痪。

二、mysql和sql server的不同

1、两者语法方面存在略微差异

mysql支持enum,和set类型,sql server不支持
mysql不支持nchar,nvarchar,ntext类型
mysql的递增语句是AUTO_INCREMENT,而sql server是identity(1,1)
sql server默认到处表创建语句的默认值表示是((0)),而在mysql里面是不允许带两括号的
mysql需要为表指定存储类型
sql server识别符是[],[type]表示他区别于关键字,但是mysql却是 `,也就是按键1左边的那个符号
sql server支持getdate()方法获取当前时间日期,但是mysql里面可以分日期类型和时间类型,获取当前日期是cur_date(),当前完整时间是 now()函数
mysql支持insert into table1 set t1 = ‘’, t2 = ‘’ ,但是sql server不支持这样写
mysql支持insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1)
sql server不支持limit语句,是非常遗憾的,只能用top 取代limt 0,N,row_number() over()函数取代limit N,M
mysql在创建表时要为每个表指定一个存储引擎类型,而sql server只支持一种存储引擎
mysql不支持默认值为当前时间的datetime类型(mssql很容易做到),在mysql里面是用timestamp类型

2、两者使用选择上侧重点不同

两者都可以满足对数据库的要求和操作。但是在不同的系统不同级别项目下采用的的数据库侧重点存在略微差异。在linux中使用php语言的最佳适配是MYSQL,但是如果涉及到特别重要以及延展性比较强的项目还是推荐使用SQL SERVER数据库,毕竟它的安全性强于mysql.

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐