oracle存储引擎
❶ mysql和oracle的区别
MySQL与Oracle的区别:
一、Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。
二、Oracle支持大并发,大访问量,是OLTP最好的工具。
三、安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。
四、Oracle也Mysql操作上的一些区别:
1、主键Mysql一般使用自动增长类型,在创建表时只要指定表的主键为autoincrement,插入记录时,不需要再指定该记录的主键值,Mysql将自动增长;Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM框架是只要是native主键生成策略即可。
2、单引号的处理MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
3、翻页的SQL语句的处理MYSQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数;ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置,并且只能用ROWNUM<100,不能用ROWNUM>80。
4、长字符串的处理长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节,如果要插入更长的字符串,请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。
5、空字符的处理MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOTNULL来定义ORACLE表结构,导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。
6、字符串的模糊比较MYSQL里用字段名like'%字符串%',ORACLE里也可以用字段名like'%字符串%'但这种方法不能使用索引,速度不快。
7、Oracle实现了ANSIISQL中大部分功能,如,事务的隔离级别、传播特性等而Mysql在这方面还是比较的弱。
❷ 请问下mysql和oracle的区别
请问下mysql和oracle的区别:
1、价格
价格是两个数据库之间最显着的差异。Oracle有一个名为Oracle Express Edition的东西,这个版本完全免费。不幸的是,该版本对这些功能有太多限制。如果你继续购买全功能标准版或企业版,它将花费你数万美元。另一方面,MySQL是一个开源数据库,完全免费。最着名的Facebook社交网站运行在MySQL上。
2、安全
虽然MySQL使用三个参数来验证用户,即用户名,密码和位置,但Oracle使用了许多安全功能,如用户名,密码,配置文件,本地身份验证,外部身份验证,高级安全增强功能等。
3、对象名称
虽然某些模式对象名称在Oracle和MySQL中都不区分大小写,例如列,存储过程,索引等,但在某些情况下,两个数据库之间的区分大小写不同;Oracle对所有对象名称都不区分大小写,但是,与Oracle不同,某些MySQL对象名称(如数据库和表)区分大小写(取决于底层操作系统)。
4、字符数据类型
两个数据库中支持的字符类型存在一些差异。MySQL为字符类型提供CHAR和VARCHAR,最大长度允许为65,535字节(CHAR最多可以为255字节,VARCHAR为65.535字节)。另一方面,Oracle支持四种字符类型,即CHAR,NCHAR,VARCHAR2和NVARCHAR2;所有四种字符类型都需要至少1个字节长;CHAR和NCHAR最大可以是2000个字节,NVARCHAR2和VARCHAR2的最大限制是4000个字节。可能会在最新版本中进行扩展。
❸ mysql数据库和oracle数据库的区别
1、体积不同。
Oracle它体积比较庞大,一般是用来开发大型应用(例如分布式)的。而MySQL的体积相对来说比较小,较之Oracle更容易安装、维护以及管理,操作也简单,最重要的是它是三个中唯一一个开源数据库,但目前也属于Oracle公司的产品了。
2、容量不同。
Oracle容量无限,根据配置决定;而MySQL使用MyISAM存储引擎,最大表尺寸为65536TB。 MySQL数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由MySQL内部限制决定。
3、平台支持及速度的区别。
Oracle支持大多数平台;而MySQL支持各种平台,适合linux。至于速度,Oracle在Linux下的性能,在少量数据时速度低于MySQL,在千万级时速度快于MySQL。
4、数据库崩溃造成的影响不同。
Oracle数据库崩溃后恢复很麻烦,因为他把很多东西放在内存里;数据库连接要慢些,最好用连接池;而MySQL使用缺省的IP端口,但是有时候这些IP也会被一些黑客闯入,使用MyISAM配置,不慎损坏数据库,结果可能会导致所有的数据丢失。
5、性能的区别。
Oracle全面,完整,稳定,但一般数据量大,对硬件要求较高 ;而MySQL使用CPU和内存极少,性能很高,但扩展性较差。
6、授权价格区别。
Oracle价格较贵,例如Oracle 10G/11G 标准版 [10用户]¥25600 ,Oracle 10G/11G 标准版 [1CPU无限用户] ¥157600。而MySQL采用双重授权,他们是GPL和MySQLAB制定的商业许可协议。如果你在一个遵循GPL的自由项目中使用 MySQL,那么你可以遵循GPL协议免费使用MySQL。否则,你需要购买MySQLAB制定的那个商业许可协议。
❹ oracle和mysql的区别
这个没什么区别的,只是价钱的区别的,
❺ 请问MSSQL,ORACLE,数据库引擎是什么
各类数据库管理系统的设计都有其独特之处。在Oracle上也是有存储引擎的,但Oracle官方从来都不这么提,只说存储架构。按功能上来看,InnoDB在设计之初参考了Oracle的设计(如表空间,extent,块等)。MSSQL -- 不知道。
❻ mysql和oracle之间有什么区别
一、并发性
并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。
mysql:
mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。
oracle:
oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,所以oracle对并发性的支持要好很多。
二、一致性
oracle:
oracle支持serializable的隔离级别,可以实现最高级别的读一致性。每个session提交后其他session才能看到提交的更改。
mysql:
mysql没有类似oracle的构造多版本数据块的机制,只支持read commited的隔离级别。一个session读取数据时,其他session不能更改数据,但可以在表最后插入数据。
session更新数据时,要加上排它锁,其他session无法访问数据。
三、事务
oracle很早就完全支持事务。
mysql在innodb存储引擎的行级锁的情况下才支持事务。
四、数据持久性
oracle
保证提交的数据均可恢复,因为oracle把提交的sql操作线写入了在线联机日志文件中,保持到了磁盘上,
如果出现数据库或主机异常重启,重启后oracle可以考联机在线日志恢复客户提交的数据。
mysql:
默认提交sql语句,但如果更新过程中出现db或主机重启的问题,也许会丢失数据。
五、提交方式
oracle默认不自动提交,需要用户手动提交。
mysql默认是自动提交。
六、逻辑备份
oracle逻辑备份时不锁定数据,且备份的数据是一致的。
mysql逻辑备份时要锁定数据,才能保证备份的数据是一致的,影响业务正常的dml使用。
七、热备份
oracle有成熟的热备工具rman,热备时,不影响用户使用数据库。即使备份的数据库不一致,也可以在恢复时通过归档日志和联机重做日志进行一致的回复。
mysql:
myisam的引擎,用mysql自带的mysqlhost热备时,需要给表加读锁,影响dml操作。
八、sql语句的扩展和灵活性
mysql对sql语句有很多非常实用而方便的扩展,比如limit功能,insert可以一次插入多行数据,select某些管理数据可以不加from。
oracle在这方面感觉更加稳重传统一些。
❼ oracle性能的一些问题,在非常单纯的情况下,会比mysql快多少
mysql的速度并不比orcale慢,问题在于你会不会优化MYSQL的语句。 不要说三千万,如果优化烂,就算只有10万条记录,oracle一样慢的让你头疼。 此外如果你不明白什么叫做存储引擎,不明白各大存储引擎的优势与弱势,不明白根据你的具体应用来选择合适的存储引擎,不懂得针对各大存储引擎优化你的SQL语句,不懂得如何使用预解析语句,不明白存储过程的原理,不了解数据库的优化器是怎样工作的,不了解数据库的整个运作流程。 那么对你来说,不管MYSQL,还是orcale还是什么数据库,都是一样的,都不会有什么太大的区别。
❽ oracle 刷新脏页如何优化
当要读入的数据页没有在内存的时候,就必须到缓冲池中申请一个数据页。这时候只能把最久不使用的数据页从内存中淘汰掉:如果要淘汰的是一个干净页,就直接释放出来复用;但如果是脏页呢,就必须将脏页先刷到磁盘,变成干净页后才能复用。
InnoDB存储引擎还提供了Flush Neighbor Page(刷新邻接页)的特性。其工作原理为:当刷新一个脏页时,InnoDB存储引擎会检测该页所在区(extent)的所有页,如果是脏页,那么一起进行刷新。InnoDB1.2.x版本开始提供了参数innodb_flush_neighbors,用来控制是否启用该特性。
❾ oracle和mysql区别
oracle和mysql区别:
1、体积不同。oracle是oracle的数据库产品,它体积比较庞大,一般是用来开发大型应用(例如分布式)的。而mysql的体积相对来说比较小,较之oracle更容易安装、维护以及管理,操作也简单,最重要的是它是三个中唯一一个开源数据库,但目前也属于Oracle公司的产品了。
2、容量不同。Oracle容量无限,根据配置决定;而mysql使用MyISAM存储引擎,最大表尺寸为65536TB。MySQL数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由MySQL内部限制决定。
3、平台支持及速度的区别。Oracle支持大对数平台;而mysql支持各种平台,适合Linux。至于速度,oracle在linux下的性能,在少量数据时速度低于mysql,在千万级时速度快于Mysql。
4、数据库崩溃造成的影响不同。oracle数据库崩溃后恢复很麻烦,因为他把很多东西放在内存里;数据库连接要慢些,最好用连接池;而mysql使用缺省的ip端口,但是有时候这些ip也会被一些黑客闯入,使用myisam配置,不慎损坏数据库,结果可能会导致所有的数据丢失。
5、性能的区别。Oracle全面,完整,稳定,但一般数据量大,对硬件要求较高;而mysql使用CPU和内存极少,性能很高,但扩展性较差。
6、授权价格区别。Oracle价格较贵,例如Oracle10G//11G标准版[10用户]¥25600,Oracle10G//11G标准版[1CPU无限用户]¥157600。而MySQL采用双重授权,他们是GPL和MySQLAB制定的商业许可协议。如果你在一个遵循GPL的自由项目中使用MySQL,那么你可以遵循GPL协议免费使用MySQL。否则,你需要购买MySQLAB制定的那个商业许可协议。