欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL和Oracle两者的的主要区别介绍

程序员文章站 2022-03-02 21:47:49
最近开始换工作,面试了两家公司的时候被问到关于mysql和oracle的区别有哪些?因为我主要学习的是oracle对于mysql很多都是看的网上的资料很少有做实验,所以当时回答的不是很好。现在使用m...

最近开始换工作,面试了两家公司的时候被问到关于mysql和oracle的区别有哪些?因为我主要学习的是oracle对于mysql很多都是看的网上的资料很少有做实验,所以当时回答的不是很好。现在使用mysql的公司比较多,所以后来我还是在网上整理了一些资料,谈谈自己的看法 希望大家多多指教。

关于mysql和oracle的主要区别:

大家比较容易想到的就是mysql是开源的项目,开源=免费所以一些中小企业考虑的时候mysql肯定是首选。oracle是oracle公司推出的一款成熟的数据库产品是闭源同时也是收费的,但是oracle官网是不限制下载的(只要你有账号)一般的开发测试是没问题但是你如果来拿来商用而又不给oracle付费的话,肯定是被oracle强大的法务部门给狠刮一块肉(其实中国的国情大家都懂的,很多银行、*部门就算拿来用了没人说破oracle还不是睁一只眼闭一只眼)。

sql语法的不同,mysql较为灵活,oracle较为严格(具体就是单引号,分页的处理,主键的自动增长),这里涉及的内容太多网上的资料也很多,我就不写了。

对于事务的支持。这一点也是大家经常说到的,mysql对于事务默认是不支持的,只有某些存储引擎中如:innodb可以支持。而oracle对于事务是完全支持,不管是oltp还是olat都是支持的。

mysql是单进程多线程,oracle是多进程(在windows下也是单进程)。具体的例子就是windows操作和linux操作系统的区别,windows下只能使用一个用户,或者你可以在不同用户之间做切换,而linux是多用户或者相同用户可以同时连接操作系统,其实这一点也就引发了下面这点的不同。

数据库和实例以及用户之间的关系。我们知道用户操作数据库不管mysql还是oracle都是通过实例来的,那么实例和数据库、数据库软件以及用户之间是什么关系呢?在mysql和oracle的情况下我们来分别讲解下:

首先mysql的实例是用户登录是系统分配给用户的,而用户必须是先在mysql中创建好,然后登陆用户mysql -u user_name -p然后使用show databases; 命令查看数据库,在使用 use database_name database; 选择数据库,这样才可以对数据库进行操作。简单的关系就是:instance > database

其次是oracle,oracle的实例是在创建数据库时就默认创建好的,而用户基于数据库实例,实例之间可以没有关系所以其中的用户也不尽相同,你登录不同的实例就相当于登录了不同的数据库,登陆的命令也能简单sqlplus user_name/password@ip:port/instance_name 其中可以把ip地址,端口号,实例名写在一个tns文件中取一个别名,登陆的时候输入这个别名就行了。简单的关系就是:instance = database

这就是我对于mysql和oracle区别的总结,如果以后我发现有什么其他的区别我会继续加上。