关系型数据库MySQL和SQL Server、Oracle的区别

MySQL

不支持事务处理、没有视图、储存过程和触发器(trigger),没有数据库端的用户自定义函数,不能使用标准SQL语法。

SQL Server

它已广泛应用于金融、保险、电力、行政管理等与数据库有关的行业。由于其易操作性及友好的界面。它一般是和同是微软产品的.net平台一起搭配使用。

Oracle

能在所有主流平台(VMS、DOS、UNIX、WINDOWS)上运行,提供高可用性和高伸缩性的簇的解决方案,扩展Windows NT的能力。Oracle良好的兼容性、可移植性、可连接性和高生产率是 Oracle RDBMS具有良好的开放性。Oracle价格是比较昂贵的。OLTP(On-Line Transaction Processing联机事务处理系统)的最好工具。

Oracle:客户端和命令窗口,都是由用户决定内容-> conn user_name/password;

MySQL:客户端和命令窗口,都是由数据库决定内容-> use datebase;

  Oracle SQL Server MySQL
  一库多用户 中小企业 多库多用户
  大型数据库(大并发,大访问量) 高度集成化,中小型数据库 中小型数据库
收费 收费高 收费 开源
字符串拼接 || + concat()
空值处理数 Nvl() isnull() ifnull()
获取系统时间 sysdate getdate() now()
日期格式化 to_char(sysdate,'yyyymmdd') convert(varchar(8),getdate(),112) date_format(xcs_received_date,'%Y%m%d')
主键自增长 使用序列自动增长 create table tb(id int identity(1,1) primary key )  create table tb(id int auto increment primary key )

大型数据库的特点

海量数据、高吞吐量;复杂逻辑、高计算量,以及高可用性

lamp(Web应用软件组合)

Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

用轻量级的Web 服务器(例如nginx,HTTP和反向代理服务器)高效,对于静态文件的响应能力远高于Apache服务器

  1. Oracle: 数据文件包括:控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件。这是根据文件功能行进行划分,并且所有文件都是二进制编码后的文件,对数据库算法效率有极大的提高。由于Oracle文件管理的统一性,就可以对SQL执行过程中的解析和优化,指定统一的标准:
    RBO(基于规则的优化器)、CBO(基于成本的优化器)
    通过优化器的选择,以及无敌的HINT规则,给与了SQL优化极大的自由,对CPU、内存、IO资源进行方方面面的优化。
  2. MySQL:最大的一个特色,就是自由选择存储引擎。每个表都是一个文件,都可以选择合适的存储引擎。常见的引擎有 InnoDB、 MyISAM、 NDBCluster等。但由于这种开放插件式的存储引擎,比如要求数据库与引擎之间的松耦合关系。从而导致文件的一致性大大降低。在SQL执行优化方面,也就有着一些不可避免的瓶颈。在多表关联、子查询优化、统计函数等方面是软肋,而且只支持极简单的HINT。
  3. SQL Server :数据架构基本是纵向划分,分为:Protocol Layer(协议层), Relational Engine(关系引擎), Storage Engine(存储引擎), SQLOS。SQL执行过程就是逐层解析的过程,其中Relational Engine中的优化器,是基于成本的(CBO),其工作过程跟Oracle是非常相似的。在成本之上也是支持很丰富的HINT,包括:连接提示、查询提示、表提示。

猜你喜欢

转载自blog.csdn.net/xuxuan1997/article/details/84037805