很多站长朋友们都不太清楚为什么mysql不适合银行,今天小编就来给大家整理为什么mysql不适合银行,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 为什么银行单位几乎都用Oracle? 2、 Oracle、DB2、MySQL、SQL Server、Sybase这几款数据的重点应用领域分别是哪些?比如电信、互联网、银行等等 3、 mysql和sql server有什么区别 4、 MySQL的局限性 5、 SQL Server 和 Oracle 以及 MySQL 有哪些区别 为什么银行单位几乎都用Oracle?现在都在清理,所有涉及国家和民生的要害部门的设备和软件,全部要求用国产,第一批2022年完成,这是国家安可工程强制要求的,你看看现在新上的数据库,那有国外厂家中标的。
这么多只为oracle背书,有点讽刺(国外的屎对这群人来说都是香的)。当初用只是无奈之举,若有选择,绝对没人用。商用软件很多都有后门,根本没有安全可言,(技术无国界)就是流氓逻辑,未来数据安全为王,oracle也会死在“闭源”上,至于说的“安全、高效”就是扯淡,国内“基础”技术越来越好,迟早要替代这些没有控制权的软件。
我的回答:银行单位选择oracle数据库,有很多的原因。
1.oracle数据库是世界上第一个商用闭源关系型数据库,是比较成熟的产品。oracle具有先进的、成熟的市场经验。产品遍布各行各业,oracle的产品和技术已经广泛用在金融、电信及通信、证券、保险、能源、高 科技 、生产制造、以及政府等行业,oracle技术具有强大的领先优势。
2.oracle具有高可用的架构优势,可以使用oracle rac、DataGuard、MAA等架构保障业务的稳定性、可靠性、连续性。oracle可以满足业务的高并发需求,满足OLTP各种事务处理。具有低成本、高性能、易伸缩、高可用、安全和集中管理等特点。
3.oracle可以使银行提高客户服务水平、规避和控制金融风险、保证银行业务和利润的持续增长。oracle有一系列成熟的配套软件和专业的服务,可以满足银行单位的业务发展需求。尽管随着金融领域业务的变化,有去IOE和云化的变化,但是oracle的稳定性肯定是银行业务的首选,可以促进金融行业的业务转型与升级。
这样想,银行单位选用oracle数据库,合情合理!
不以泪水博同情,要以汗水赢掌声。你能作茧自缚,必能破茧成蝶!
第一,几十年前银行系统建设的时候只能选择IOE,根本没有其他的选择。
第二,目前中国的IT基础设施还无法满足银行的业务需求。
具体说oracle,他的一致性,稳定性,成熟度不是其他软件可以比拟的,你总不会希望你银行,交易所里面的钱有异常吧
不开源 安全性高 高效稳定 支持高并发
一句话,技术支持可以做到7.24小时,重大问题8小时内技术人员到岗,那一个开源软件可以做到。另外就是IBM的DB2也有一部分份额。
早年间MySQL和Linux都不成气候,银行是第一批使用小型机+Oracle的行业
真正的原因是银行信息化起步早。在90年代,无论是银行还是互联网都采用商用数据库。在那个时间段,MySQL和Linux都不成气候,更别提现在的大数据技术技术了。那时候,在小型机(Unix系统)上跑Oracle非常流程,MySQL根本没办法与其匹敌。
互联网企业在那个年代都热衷于Oracle,比如,阿里巴巴在2000年左右还养着全国最优秀的OracleDBA团队。只不过,后来这些互联网公司爱折腾,有实力折腾,开始用开源的MySQL替代了原来的Oracle,而银行既没有意愿有没有能力去做这件事。
核心业务强依赖Oracle,牵一发而动全身
至于到现在,银行为什么还没有替换到Oracle呢?主要是银行的业务已经成型,很多核心的功能都强依赖于Oracle,不可能轻易动,这是伤筋动骨的大事。
Oracle本身也具有很多优势
Oracle的安全级别非常高,这是MySQL不能比拟的。支持闪回和完美的数据恢复,及时硬件坏了也可以恢复到故障发生前1秒。
Oracle对于复杂的SQL场景支持得非常好,有出色的查询优化器。超强劲的CBO优化器在大部分场景可以对复杂SQL形成高效的执行计划,开发人员可以编写大量的表关联、子查询、几何运算等,我见过几百上千行的SQL或者存储过程,都有非常高的查询性能。
Oracle提供了自己的RAC架构,RAC架构推出后,即使使用普通的服务器,在低成本下实现也能实现数据的可靠性,还能提供很强的查询性能。
现在有没有Oracle的替代品呢
阿里云的 云原生数据库PolarDB完全替代Oracle数据库 ,PolarDB使用了存储和计算分离架构,可以在业务高峰期进行快速扩容,最大程度降低成本。PolarDB可以100%兼容MySQL语法,深度兼容Oracle的语法和数据类型。在2020年,阿里云已经帮助1千多家公司完成了去Oracle的工作。
这个问题其实一点都不难想象。
银行的数据极其重要,不容有半点损失和误差。
Oracle就是全球最好的数据库软件供应商。
金融行为要求的是系统稳定,系统稳定才能更好服务客户。
系统性能的要求在实时性方面在接受范围就可以,比如交易超时在60秒内等。
但是随着第三方支付的快速发展,交易量大幅度提高,则导致了银行系统在稳定性,时效性,性能方面都提升了一个或多个等级,tps的提高,系统压力也越来越大。
因此应用保证正常的情况下,数据显得更为重要。而在国内早此年,数据库的厂商还真没有,就oracle,db2,其实还有informix。
现在的情况,在国内出现一些商用的数据库,比如阿里系的,腾讯系的。
你这问题放在五年前差不多 现在你再看看有多少 现在去IOE去的差不多了
Oracle、DB2、MySQL、SQL Server、Sybase这几款数据的重点应用领域分别是哪些?比如电信、互联网、银行等等这个事情需要展开来看
很多大型企业单位为了满足业务系统的使用需要,使用很强劲的服务器主机,以大型机、小型机为主。这些机器都不使用windows系统,所以SQL Server之类的数据库没办法在这种机器上运行。Oracle、DB2、Sybase之类的是主流,这几个数据库有很强大的技术支持团队,也是受到大企业欢迎的原因。
计算机水平国外还是比较高的,所以外国软件公司开发的针对大企业的软件也都要求在这种数据库上运行。
约定俗成,微软的操作系统和数据库由于不能运行在很强劲的主机上,所以只能给中小企业服务。微软系列的还有access数据库,基本上是为单机服务的。
至于MySQL基本上是为网站服务的,主要特点是免费,应用挺多,但是大企业信息化软件很少用,因为没有对应的业务支持人员,到时候出问题,找不到人,就出大事故了。
反过来再看数据库本身,都有参数说明,你仔细看看就知道了。很多小数据库本身底气就不足,并发数量、最大库文件等等参数标得很低,你说大企业动辄几T几P的数据,敢忘这种数据库上放吗?软件公司敢编写用这种数据库的软件吗?
再说说知名度,企业之间都会互相问,要是一个很小很便宜的数据库大家都用,都用得很好,市场占有率极高。自然口碑就好,大家就都用了。微软的sqlsever就是一个例子。从最开始的6.5基本上不能用到sql2000很成功,得到大量企业的认同,到现在出到2008版本,占有率很高了,就是口碑,可是它在大企业中使用不理想,所以还是占有中小企业。
分析这些数据库,应该多方面来看,不能只看参数,只看技术。你都分析好了,发现某个数据库不像大家说的,你能用,可是市场上找不到对应的软件,也没辙,除非你自己编写。
mysql和sql server有什么区别一、开发公司不同
1、SQLserver:SQLserverr是由Microsoft开发和推广。
2、Mysql:Mysql由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。
二、开发工具包搭配不同
1、SQLserver:SQLserver能与 Microsoft Visual Studio、Microsoft Office System以及开发工具包搭配。
2、Mysql:Mysql不能与 Microsoft Visual Studio、Microsoft Office System以及开发工具包搭配。
应用环境:
与其他的大型数据库例如 Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本。
以上内容参考:百度百科-mySQL
MySQL的局限性局限性
从数据库行家听说的第一件事就是MySQL缺乏transactions,rollbacks, 和subselects的功能。如果你计划使用MySQL写一个关于银行、会计的应用程序,或者计划维护一些随时需要线性递增的不同类的计数器,你将缺乏transactions功能。在现有的发布版本的MySQL下,请不要有任何的这些想法。(请注意,MySQL的测试版3.23.x系列现在已经支持transactions了)。
在非常必要的情况下,MySQL的局限性可以通过一部分开发者的努力得到克服。在MySQL中你失去的主要功能是subselect语句,而这正是其它的所有数据库都具有的。换而言之,这个失去的功能是一个痛苦,但是它可以被克服。
SQL Server 和 Oracle 以及 MySQL 有哪些区别Oracle
Oracle 能在所有主流平台上运行(包括Windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持,Oracle并行服务器通过使一组结点共享同一簇中的工作来扩展Windows NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果Windows NT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。Oracle获得最高认证级别的ISO标准认证.Oracle性能最高,保持开放平台下的TPC-D和TPC-C的世界记录Oracle多层次网络计 算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。
Oracle 在兼容性、可移植性、可联结性、高生产率上、开放性也存在优点。Oracle产品采用标准SQL,并经过美国国家标准技术所(NIST)测试。与 IBM SQL/DS,DB2,INGRES,IDMS/R等兼容。Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在70种以上 不同的大、中、小型机上;可在VMS、DOS、UNIX、WINDOWS等多种操作系统下工作。能与多种通讯网络相连,支持各种协议(TCP/IP、 DECnet、LU6.2等)。提供了多种开发工具,能极大的方便用户进行进一步的开发。Oracle良好的兼容性、可移植性、可连接性和高生产率是 Oracle RDBMS具有良好的开放性。
Oracle价格是比较昂贵的。据说一套正版的Oracle软件早在2006年年底的时候在市场上的价格已经达到了6位数。所以如果你的项目不是那种超级大的项目,还是放弃Oracle吧。
SQL Server
SQL Server 是 Microsoft推出一套产品,它具有使用方便、可伸缩性好、与相关软件集成程度高等优点,逐渐成为Windows平台下进行数据库应用开发较为理想的 选择之一。SQLServer是目前流行的数据库之一,它已广泛应用于金融、保险、电力、行政管理等与数据库有关的行业。而且,由于其易操作性及友好的界 面,赢得了广大用户的青睐,尤其是SQLServer与其它数据库,如Access、FoxPro、Excel等有良好的ODBC接口,可以把上述数据库 转成SQLServer的数据库,因此目前越来越多的读者正在使用SQLServer。
SQL Server由于是微软的产品,又有着如此强大的功能,所以他的影响力是几种数据库系统中比较大,用户也是比较多的。它一般是和同是微软产品的.net平台一起搭配使用。当然其他的各种开发平台,都提供了与它相关的数据库连接方式。因此,开发软件用SQL Server做数据库是一个正确的选择。
MySQL
MySQL不支持事务处理,没有视图,没有存储过程和触发器,没有数据库端的用户自定义函数,不能完全使用标准的SQL语法。
从数据库行家听说的第一件事就是MySQL缺乏transactions,rollbacks, 和subselects的功能。如果你计划使用MySQL写一个关于银行、会计的应用程序,或者计划维护一些随时需要线性递增的不同类的计数器,你将缺乏transactions功能。在现有的发布版本的 MySQL下,请不要有任何的这些想法。(请注意,MySQL的测试版3.23.x系列现在已经支持transactions了)。
在非常必要的情况下,MySQL的局限性可以通过一部分开发者的努力得到克服。在MySQL中你失去的主要功能是subselect语句,而这正是其它的所有数据库都具有的。换而言之,这个失去的功能是一个痛苦。
MySQL没法处理复杂的关联性数据库功能,例如,子查询(subqueries),虽然大多数的子查询都可以改写成join
另一个MySQL没有提供支持的功能是事务处理(transaction)以及事务的提交(commit)/撤销(rollback)。一个事务指的是被当作一个单位来共同执行的一群或一套命令。如果一个事务没法完成,那么整个事务里面没有一个指令是真正执行下去的。对于必须处理线上订单的商业网站来说,MySQL没有支持这项功能,的确让人觉得很失望。但是可以用MaxSQL,一个分开的服务器,它能通过外挂的表格来支持事务功能。
外键(foreignkey)以及参考完整性限制(referentialintegrity)可以让你制定表格中资料间的约束,然后将约束 (constraint)加到你所规定的资料里面。这些MySQL没有的功能表示一个有赖复杂的资料关系的应用程序并不适合使用MySQL。当我们说 MySQL不支持外键时,我们指的就是数据库的参考完整性限制--MySQL并没有支持外键的规则,当然更没有支持连锁删除(cascadingdelete)的功能。简短的说,如果你的工作需要使用复杂的资料关联,那你还是用原来的Access吧。
你在MySQL中也不会找到存储进程(storedprocedure)以及触发器(trigger)。(针对这些功能,在Access提供了相对的事件进程(eventprocedure)。
MySQL+php+apache三者被软件开发者称为“php黄金组合”。
Oracle和MySQL的主要区别
Oracle:客户端和命令窗口,都是由用户决定内容-> conn user_name/password;
MySQL:客户端和命令窗口,都是由数据库决定内容-> use datebase;
都可以创建多数据库多用户,个人倾向于Oracle一个数据库中多个用户的形式,MySQL多个数据库多个用户形式(最好每个数据库对应一个用户)
Oracle是大型数据库而MySQL是中小型数据库,Oracle市场占有率达40%,MySQL只有20%左右,同时MySQL是开源的而Oracle价格非常高。
Oracle支持大并发,大访问量,是OLTP(On-Line Transaction Processing联机事务处理系统)最好的工具。
安装所用的空间差别也是很大的,MySQL安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。
Oracle也与MySQL操作上的一些区别
组函数用法规则
MySQL中组函数在select语句中可以随意使用,但在Oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错
eg:
select name,count(money) from user;这个放在MySQL中没有问题在Oracle中就有问题了。
自动增长的数据类型处理
MySQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。Oracle没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。
CREATE SEQUENCE序列号的名称(最好是表名+序列号标记)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;
其中最大的值按字段的长度来定,如果定义的自动增长的序列号NUMBER(6),最大值为999999
INSERT语句插入这个字段值为:序列号的名称.NEXTVAL
单引号的处理
MySQL里可以用双引号包起字符串,Oracle里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
翻页的SQL语句的处理
MySQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数;PHP里还可以用SEEK定位到结果集的位置。Oracle处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位置,并且只能用ROWNUM<100,不能用ROWNUM>80。
以下是经过分析后较好的两种Oracle翻页SQL语句(ID是唯一关键字的字段名):
语句一:
SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT ROWNUM AS NUMROW, ID FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY 条件3;
语句二:
SELECT * FROM (( SELECT ROWNUM AS NUMROW, c.* from (SELECT [FIELD_NAME,...] FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2) c) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY 条件3;
长字符串的处理
长字符串的处理Oracle也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节,如果要插入更长的字符串,请考虑字段用CLOB类型,方法借用Oracle里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。
日期字段的处理
MySQL日期字段分DATE和TIME两种,Oracle日期字段只有DATE,包含年月日时分秒信息,用当前数据库的系统时间为SYSDATE,精确到秒,或者用字符串转换成日期型函数TO_DATE('2001-08-01','YYYY-MM-DD')年-月-日24小时:分钟:秒的格式YYYY-MM-DD HH24:MI:SS TO_DATE()还有很多种日期格式,可以参看Oracle DOC.
日期型字段转换成字符串函数TO_CHAR('2001-08-01','YYYY-MM-DD HH24:MI:SS')
日期字段的数学运算公式有很大的不同。MySQL找到离当前时间7天用DATE_FIELD_NAME > SUBDATE(NOW(),INTERVAL 7 DAY)Oracle找到离当前时间7天用 DATE_FIELD_NAME >SYSDATE - 7;
MySQL中插入当前时间的几个函数是:NOW()函数以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中。CURDATE()以'YYYY-MM-DD'的格式返回今天的日期,可以直接存到DATE字段中。CURTIME()以'HH:MM:SS'的格式返回当前的时间,可以直接存到TIME字段中。例:insert into tablename (fieldname) values (now())
而Oracle中当前时间是sysdate
空字符的处理
MySQL的非空字段也有空的内容,Oracle里定义了非空字段就不容许有空的内容。按MySQL的NOT NULL来定义Oracle表结构,导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。
字符串的模糊比较
MySQL里用字段名like%'字符串%',Oracle里也可以用字段名like%'字符串%'但这种方法不能使用索引,速度不快,用字符串比较函数instr(字段名,'字符串')>0会得到更精确的查找结果。
程序和函数里,操作数据库的工作完成后请注意结果集和指针的释放。
主键
MySQL一般使用自动增长类型,在创建表时只要指定表的主键为auto increment,插入记录时,不需要再指定该记录的主键值,MySQL将自动增长;Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM框架是只要是native主键生成策略即可。
Oracle实现了ANSIISQL中大部分功能,如,事务的隔离级别、传播特性等而MySQL在这方面还是比较的弱
关于为什么mysql不适合银行的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于为什么mysql不适合银行 为什么mysql不适合银行用户的详细内容...