如何理解MySQL数据库单实例和多实例?

        数据库和实例。理解这2个名词的含义,对我们后续开发和部署mysql都有很大帮助!其中实例又分单实例和多实例,本节重点介绍MySQL多实例!

1、mysql实例介绍

1.1、数据库和实例

        数据库:简单讲是数据的集合,这些数据按照一定的方式存储在一起,可以给多用户共享,与应用程序独立开来。在MYSQL数据库中,数据库文件按照存储引擎的不同,文件后缀也不同,可以是frm、myd、myi、ibd结尾,是一个静态概念。

        实例:MySQL数据库由后台线程及一个共享内存区组成,数据库实例才是真正用于操作数据库文件的程序集,是一个动态概念。

        在MySQL中实例和数据库的关系通常是一一对应的,即一个实例对应一个数据库,但是现在越来越多的场景使用多实例,也就是一个数据库被多个数据库实例使用多情况。

Mysql被设计成一个单进程多线程架构的数据库,所以在操作系统上表现就是一个进程。

2、mysql多实例介绍

        上节介绍了mysql进程,这种单进程实际上就是mysql的单实例,其实在生产环境中,更为通用的部署方式是多实例部署,那什么是多实例?

        多实例就是在一台服务器上同时开启多个不同的数据库服务端口(例如3306、3307),同时运行多个MYSQL服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供服务。

        这些MySQL实例共用一个Mysql数据库安装程序,使用不同的my.cnf配置文件启动,在提供服务时,多实例MySQL在逻辑上看,是各自独立的,他们根据配置文件的设定来获得服务器相应数量的资源。

3、多实例学习

MySQL多实例的优缺点

3.1、优点:

        可以有效利用服务器资源,当单个服务器资源富裕时,可以充分利用资源提供更多的服务。

节约服务器资源,若公司资金不是充裕,又想数据库能独立提供服务,还想用主从复制等技术,那么只能选择多实例部署方式。

3.2、缺点:

        存在资源互享抢占的问题,当某个数据库实例并发很高且SQL查询耗时,那整个实例会消耗大量的系统资源,包括CPU、磁盘IO等,导致同一个服务器的其它数据库实例可能响应慢,毕竟它不会像虚拟机一样做到完全隔离。

4、MySQL多实例的应用场景

中小型公司的选择:公司业务访问量不大,希望不同的业务使用不同的数据库服务而互相不受影响,建于资金不足,可食用多实例,比如可以通过3台服务器部署9-15个实例,交叉做主从复制、数据备份及读写分离,这样也能达到多个服务器只装1个数据库的效果。

并发访问不是很大的业务:当业务访问量不大,服务器资源基本都是空闲的,这时很适合多实例应用,如果对sql语句优化较好,多实例是一个很值得使用技术,即使并发打,合理分配资源以及搭配号服务,问题也不大。

门户网站应用:门户网站通常会使用多实例,因为配置硬件好的服务器,可以节省IDC机柜空间,同时运行多个实例可以减少资源浪费情况,例如一个pc服务器,16核CPU,内存128G内存,可运行3-4个实例绰绰有余。

5、MySQL多实例的部署方案

        一般目前流行的部署方案是多配置文件,多启动程序的部署方式,也就是多个my.cnf文件,启动程序mysql都是独立的文件,数据文件也是独立的。关于更多的部署细节,后续文章会单独来讲解。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值