Oracle   发布时间:2022-05-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了长期的Oracle用户切换到MySQL,任何需要注意的问题?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
碰巧过去10年中的所有项目都是将Oracle作为数据库服务器.现在,我正在开始自己的 MySQL项目(最新的稳定版).

是否存在任何陷阱(Oracle用户无法正常工作)?与事务管理,锁定,隔离级别,索引,那种东西有关.

我主要是Java开发人员,所以我对如何从应用程序服务器看到数据库感兴趣.存储过程,(复杂)视图或任何花哨的东西都不在我这个项目的雷达上.

谢谢.

解决方法

MysqL有各种引擎 – 主要是INNODB和MyISAm. MyISAM does not support transactions,nor foreign key consTraints.隔离级别相似 – 这些天数据库之间似乎相对标准.

索引

索引不同 – MysqL具有聚簇索引和非聚簇索引.聚簇索引通常用于主键,但不一定.还有a limit on the space for defining indexes – 767 for INNODB,1,000 for MyISAm.支持覆盖索引,不支持基于函数的索引……

优化器每个SELECT子句只能使用一个索引 – 检查EXPLAIN PLAN输出.有指定要使用的索引的语法,但它是一个提示&仍然可以被优化器忽略.

约束

@H_985_5@mysqL有checK consTraint syntax,but no ENGIne enforces it currently.唯一的选择是使用触发器. MysqL中的唯一约束作为索引实现.

自定义错误处理

您需要声明自定义错误处理的处理程序:http://dev.mysql.com/doc/refman/5.0/en/declare-handler.html

以前 – @H_50_32@mysqL不支持定义自定义错误以区分数据完整性和业务规则错误.

分析/排名/窗口功能

@H_985_5@mysqL没有任何此类功能 – 没有ROW_numbER,NTILE,RANK或DENSE_RANK.您可以使用变量创建伪造的功能 – 如果您检查标签“MysqL”,“rank”,那么SO上有很多示例.

WITH语法 – 子查询因子

这是another thing MySQL does not have.

分层查询支持

你猜对了 – 没有递归支持分层查询.从v2(!!)开始,Oracle有CONNECT BY,但ANSI标准是使用你在sql Server 2005中看到的WITH子句.

查看

@H_985_5@mysqL不支持物化视图和view support is crippled – can’t use subqueries,for example.

PIVOT / UNPIVOT

这是ANSI标准语法; Oracle在11g开始支持,但MysqL再次不支持这一点.只有选项是CASE表达式和聚合函数,它仍然是实现此功能的最便携方式(sql Server 2005支持PIVOT / UNPIVOT).

序列

@H_985_5@mysqL不支持序列,最接近的是将INT列定义为auto_increment.这使得在两个或多个表中使用相同的值序列非常困难(如果您不需要,则不是您真正想要的).此外,每个表只能定义一个auto_increment列. increment and offset is instance-wide – 更改它,并影响实例所服务的每个数据库中的每个auto_increment列.重置auto_increment值需要alter table权限;删除/截断数据不会改变当前值.

在这方面,MysqL不支持RETURNING子句. You need to use LAST_INSERT_ID() to retrieve the auto_increment value for a newly created row.

数据类型

@H_985_5@mysqL没有numbER数据类型 – it splits numerics into INT,MEDIUMINT,etc..在这方面,MysqL与sql Server非常相似. MySQL’s TEXT (TINYTEXT,TEXT,MEDIUMTEXT,and LONGTEXT)数据类型比Oracle VARCHAR2的4000限制更容易. MysqL支持CLOB和BLOB ……

包,存储过程,功能

@H_985_5@mysqL支持用户定义的函数和存储过程 – 我还没有遇到支持类似于Oracle软件包的数据库. sql Server具有CLR程序集,但它需要使用.NET CLR代码而不是本机Tsql / PLsql.

大佬总结

以上是大佬教程为你收集整理的长期的Oracle用户切换到MySQL,任何需要注意的问题?全部内容,希望文章能够帮你解决长期的Oracle用户切换到MySQL,任何需要注意的问题?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。