zhuhaiqiang
作者zhuhaiqiang·2019-10-23 09:41
项目经理·银行

MySQL在银行业应用可行性分析

字数 2087阅读 10586评论 0赞 1

MySQL在银行业应用可行性分析

作者:某银行张少博、李嵩嵩

一、MySQL概况

MySQL是最流行的开源数据库

MySQL是由瑞典MySQL AB公司自1995年开始开发的一款关系型数据库,目前属于 Oracle 旗下产品。MySQL 提供了可以遵循GPLv2协议的社区版及包含更多特性与支持的商业版。除MySQL官方版本外,MySQL 衍生出多款备受瞩目的分支,如 MariaDB 及 Percona Server。2019年8月的DB-Engines发布的数据库流行度排名中(图1),MySQL、MariaDB分列第2、第13位,Percona Server为第95位。

图1:数据库流行度排名

InnoDB是MySQL得以进入企业级应用领域的关键

MySQL是由连接池组件、管理服务和工具组件、SQL接口组件、解析器组件、优化器组件、缓冲组件、插件式存储引擎和物理文件组成(如图2所示)。MySQL与其它数据库最显著的不同之一是它拥有插件式的存储引擎,而InnoDB是其中最常用和最重要的存储引擎,它的高性能和高并发性是MySQL得以进入企业级应用领域的关键。

图2:MySQL体系架构

二、功能特性

MySQL兼容多种操作系统、语言和编码

MySQL使用标准SQL数据语言形式,供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。兼容多系统,支持 Unix、Linux、Mac OS、Windows、AIX、FreeBSD、HP-UX、OpenBSD、OS/2 Wrap、Solaris等多种操作系统。兼容多种编程语言。这些编程语言包括 C、C++、.NET、Python、Java、Perl、PHP、Eiffel、Ruby等。提供多语言支持,常见的编码如中文的 GB2312、BIG5,UTF8等都可以用作数据表名和数据列名。

MySQL具备商业可用的性能和高可用性

支持多线程,充分利用CPU资源,提升性能。优化的SQL查询算法,有效地提高查询速度。提供用于管理、检查、优化数据库操作的管理工具。高可用性,具备复制无崩溃从机,可提高可用性,复制多线程从机,可提高性能。复制全局事务标识,可支持自我修复式集群。MySQL的同步复制功能(如图3所示),保证了MySQL的高可用性。当同步复制时,主库上的事务只要至少在一个备库上提交后才能认为执行完成。MySQL Cluster版本,在所有节点上进行主从复制,当发生故障时主库从库可以进行自动切换,保证业务的持续进行。MySQL作为一款开源关系型数据库,功能完善。

图3:MySQL主从复制功能

三、产品生态圈

MySQL具有包括RDS云服务在内的多种版本和形态

MySQL产品生态丰富,除MySQL Community Server 社区版本和MySQL Enterprise Edition 企业版本外,还提供MySQL Cluster 集群版、MySQL Cluster CGE 高级集群版可供选择。云化方面,由Oracle Cloud为MySQL云服务提供支持,目前基于MySQL研发的云数据库产品已经在各大厂商的公有云中提供服务。

MySQL已在银行业中得到广泛应用

MySQL使用广泛,能够支持大多数高并发环境下的OLTP场景,在全球许多发展迅猛的大型互联网公司,如Facebook,Google,腾讯、阿里巴巴等各大公司都在使用MySQL。大型商业银行中,工商银行、中国银行、招商银行、中信银行、民生银行等均已在开放平台使用MySQL数据库,涉及个人账户、对公账户、基金等核心交易系统。但作为一款传统单机数据库,承载能力受单机的限制,其适用场景一般为数据量为500G或1T以下,更大规模的使用需要通过分库分表中间件等方式进行水平拆分。

四、MySQL使用之我见

银行业要使用MySQL数据库需着力解决数据安全性、运维管理、知识储备等方面的问题:

1、数据安全性:金融行业对系统稳定性和数据安全性要求较高,传统的MySQL主从复制难以满足数据强一致的需求。可以考虑通过MySQL 5.7.17版本发布的组复制功能(Group Replication)来提供高可用能力。与Oracle RAC的共享存储(Shared Disk)模式不同,组复制基于分布式一致性协议Paxos实现了一种Shared Nothing的高可用架构,保证了数据的一致性。

2、运维管理:随着MySQL实例数的增多,一定会遇到资源利用率低和运维管理困难的问题。为充分发挥后发优势、建议在引入MySQL之前就应该考虑对应解决方案,例如可以通过数据库上云、利用PaaS云平台的能力提高资源利用效率,降低运维管理难度。

3、知识储备:对开发和运维人员来说,使用MySQL有一定的学习和迁移成本。可以考虑引入业界的培训体系和支持资源,加快自有人员知识储备的速度。培训认证方面,MySQL具有由Oracle官方认证的数据库管理员OCP认证,并提供对应的培训课程。国内服务厂商均可提供针对数据库运维管理人员和设计开发人员的课程培训,提升运维人员及开发人员对于MySQL的技术储备。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广