科帮网-Java论坛、Java社区、JavaWeb毕业设计

登录/注册
您现在的位置:论坛 资料库 数据库开发 > MySQL高效处理大量并发的数据库连接
总共48086条微博

动态微博

查看: 1838|回复: 0

MySQL高效处理大量并发的数据库连接

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2014-08-29 08:48:48 |只看该作者 |倒序浏览
    单机单MySQL服务器处理数据库连接请求利用多线程机制,但正如任何处理方式一样都会有它的功能瓶颈。单机单MySQL服务器如何提高处理瞬时成千上万的数据库连接请求呢?
      首先,我们从MySQL服务器的工作原理出发来思考问题。MySQL服务器利用多线程机制来充分发挥对多用户访问的支持,首先它分析客户发送过来的连接字符串,在数据库连接的线程缓存中寻找是否有这样的线程可以支持处理这一连接访问请求,如果存在就激活它;否则就新建一个线程来处理客户的访问连接请求。当多个数据库连接请求访问的是同一个数据库对象或者是同一部分数据,就会触发同步机制使得一些请求处于等待状态。
      这就引出两个问题,首先是MySQL服务器是否可以虚拟为多个服务器来提供对数据库连接请求的处理?再就是如何对客户请求的资源进行快速响应,减少等待的时间。
      第一个问题,通过开放多个端口来实现。同一服务上开启多个MySQL端口有两种方式,一种是在编译的时候指定特定端口,第二是修改配置文件来达到监听多个端口的目的。通过对MySQL_multi.conf修改可以实现第二种方式。MySQLd_multi可以管理多个帧听不同Unix套接字文件和TCP/IP端口的连接的MySQLd 进程。它可以启动或停止服务器,或报告它们的当前状态。程序寻找my.cnf中的[MySQLdN]组(或--config-file选项指定的文件)。N 可以为任何正整数。
      同时,在my.cnf配置文件中对以下各参数进行适当的设置。首先是与网络连接的性能配置项。
      Max_connections:整个MySQL允许的最大连接数。
      如果客户的连接请求数超过max_connections,就会产生大量连接请求的等待,所以应该在主机性能允许的情况下,将该参数设置的尽可能大一些。
      Max_user_connections:每个用户允许的最大连接数。
      Net_buffer_length:网络包传输中,传输消息之前的net buffer初始化大小。
      Max_allowed_packet:在网络传输中,一次消息传输量的最大值
      Back_log:在MySQL的连接请求等待队列中允许存放的最大连接请求数。
      再次是与连接线程相关的系统参数及状态变量
      Thread_cache_size:Thread Cache池中应该存放的连接线程数。
      Thread_stack:每个连接线程被创建时,MySQL给它分配的内存大小。
      第二个问题,主要通过以下几个方面来处理
      第一, 适当分库。根据业务划分多个数据库,即database。通过SQL命令 show databases可以显示所有的数据库。这样可以将数据资源的访问进行有效地均衡,使得在各个业务数据的访问之间减少干扰,这样通过访问字符串进行数据库连接的时候也可以更为有效的利用MySQL的多线程机制。而且,通过这样的处理,也有效减少了对同一部分数据的访问。
      第二,对MySQL进行Query Cache优化。

    科帮网-Java论坛、Java社区、JavaWeb毕业设计 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网-Java论坛、Java社区、JavaWeb毕业设计享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网-Java论坛、Java社区、JavaWeb毕业设计的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网-Java论坛、Java社区、JavaWeb毕业设计管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表