广告
返回顶部
首页 > 资讯 > 数据库 >Mysql连接数设置和获取的方法
  • 537
分享到

Mysql连接数设置和获取的方法

MySQL连接数设置MySQL连接数获取 2022-05-28 14:05:31 537人浏览 安东尼
摘要

获取连接数 --- 获取最大连接数 SHOW VARIABLES LIKE '%max_connections%'; --- 获取连接列表 SHOW PROCESSLIST; --- 获取连接列表 SHOW

获取连接数


--- 获取最大连接数
SHOW VARIABLES LIKE '%max_connections%'; 

--- 获取连接列表
SHOW PROCESSLIST; 
--- 获取连接列表
SHOW FULL PROCESSLIST; 

--- 获取当前的链接信息 Threads_connected是当前的连接数
SHOW STATUS LIKE 'Threads%';

--- 获取连接统计 比如历史最大连接数以及最大连接时长等
SHOW STATUS LIKE '%Connection%';

Mysql> SHOW STATUS LIKE 'Threads%';
+-------------------+-------+
| Variable_name   | Value |
+-------------------+-------+
| Threads_cached  | 58  |
| Threads_connected | 57  |  ---这个数值指的是打开的连接数
| Threads_created  | 3676 |
| Threads_running  | 4   |  ---这个数值指的是激活的连接数,这个数值一般远低于connected数值
+-------------------+-------+

Threads_connected 跟show processlist结果相同,表示当前连接数。准确的来说,Threads_running是代表当前并发

设置连接数

临时设置


mysql>show variables like 'max_connections'; --- 查可以看当前的最大连接数
msyql>set global max_connections=1000; --- 设置最大连接数为1000,可以再次查看是否设置成功
mysql>exit --- 退出

永久设置
可以在/etc/my.cnf里面设置数据库的最大连接数


[mysqld]
max_connections = 1000

项目中连接池设置

下面公式由 postgresql 提供,不过底层原理是不变的,它适用于市面上绝大部分数据库产品。还有,你应该模拟预期的访问量,并通过下面的公式先设置一个偏合理的值,然后在实际的测试中,通过微调,来寻找最合适的连接数大小。

连接数 = ((核心数 * 2) + 有效磁盘数)

核心数不应包含超线程(hyper thread),即使打开了超线程也是如此,如果热点数据全被缓存了,那么有效磁盘数实际是0,随着缓存命中率的下降,有效磁盘数也逐渐趋近于实际的磁盘数。另外需要注意,这一公式作用于SSD 的效果如何,尚未明了。
好了,按照这个公式,如果说你的服务器 CPU 是 4核 i7 的,连接池大小应该为 ((4*2)+1)=9。

取个整, 我们就设置为 10 吧。你这个行不行啊?10 也太小了吧!

你要是觉得不太行的话,可以跑个性能测试看看,我们可以保证,它能轻松支撑 3000 用户以 6000 TPS 的速率并发执行简单查询的场景。你还可以将连接池大小超过 10,那时,你会看到响应时长开始增加,TPS 开始下降。

你需要的是一个小连接池,和一个等待连接的线程队列

假设说你有 10000 个并发访问,而你设置了连接池大小为 10000,你怕是石乐志哦。

改成 1000,太高?改成 100?还是太多了。

你仅仅需要一个大小为 10 数据库连接池,然后让剩下的业务线程都在队列里等待就可以了。

连接池中的连接数量大小应该设置成:数据库能够有效同时进行的查询任务数(通常情况下来说不会高于 2*CPU核心数)。

你应该经常会看到一些用户量不是很大的 WEB 应用中,为应付大约十来个的并发,却将数据库连接池设置成 100, 200 的情况。请不要过度配置您的数据库连接池的大小。

是不是越大约好

模拟 9600 个并发线程来操作数据库,每两次数据库操作之间 sleep 550ms,注意,视频中刚开始设置的线程池大小为 2048。

让我们来看看数据库连接池的大小为 2048 性能测试结果的鬼样子:

每个请求要在连接池队列里等待 33ms,获得连接之后,执行SQL需要耗时77ms, CPU 消耗维持在 95% 左右;

接下来,我们将连接池的大小改小点,设置成 1024,其他测试参数不变,结果咋样?

“这里,获取连接等待时长基本不变,但是 SQL 的执行耗时降低了!”

哎呦,有长进哦!

接下来,我们再设置小些,连接池的大小降低到 96,并发数等其他参数不变,看看结果如何:

每个请求在连接池队列中的平均等待时间为 1ms, SQL 执行耗时为 2ms.

我去!什么鬼?

我们没调整任何东西,仅仅只是将数据库连接池的大小降低了,这样,就能把之前平均 100ms 响应时间缩短到了 3ms。吞吐量指数级上升啊!

你这也太溜了!

为啥有这种效果?

我们不妨想一下,为啥 Nginx 内部仅仅使用了 4 个线程,其性能就大大超越了 100 个进程的 Apache HttpD 呢?追究其原因的话,回想一下计算机科学的基础知识,答案其实非常明显。

要知道,即使是单核 CPU 的计算机也能“同时”运行着数百个线程。但我们其实都知道,这只不过是操作系统快速切换时间片,跟我们玩的一个小把戏罢了。

一核 CPU同一时刻只能执行一个线程,然后操作系统切换上下文,CPU 核心快速调度,执行另一个线程的代码,不停反复,给我们造成了所有进程同时运行假象。

其实,在一核 CPU 的机器上,顺序执行A和B永远比通过时间分片切换“同时”执行A和B要快,其中原因,学过操作系统这门课程的童鞋应该很清楚。一旦线程的数量超过了 CPU 核心的数量,再增加线程数系统就只会更慢,而不是更快,因为这里涉及到上下文切换耗费的额外的性能。

说到这里,应该恍然大悟了 ……

以上就是Mysql连接数设置和获取的方法的详细内容,更多关于Mysql连接数设置和获取的资料请关注自学编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: Mysql连接数设置和获取的方法

本文链接: https://www.lsjlt.com/news/10091.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql连接数设置和获取的方法
    获取连接数 --- 获取最大连接数 SHOW VARIABLES LIKE '%max_connections%'; --- 获取连接列表 SHOW PROCESSLIST; --- 获取连接列表 SHOW...
    99+
    2022-05-28
    MySQL 连接数设置 MySQL 连接数获取
  • C3P0属性设置和数据库连接池的获取
    在C3p0构建时,有驱动相关信息及数据库连接池相关的属性设置,及连接的获取,今天我们先来看一下,驱动相关信息及数据库连接池相关的属性设置,在连接的获取。 从下面几句开始, Java代码&...
    99+
    2022-10-18
  • SpringBoot连接MySQL获取数据写后端接口的操作方法
    目录1.新建项目2.添加依赖3.spring容器中创建DriverManagerDataSource和JdbcTemplate对象 3.1在springboot中加载spr...
    99+
    2022-11-12
  • 怎么设置MySQL的连接数
    本文小编为大家详细介绍“怎么设置MySQL的连接数”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么设置MySQL的连接数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2023-04-12
    mysql
  • mysql和qt连接的方法
    这篇文章主要介绍mysql和qt连接的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql和qt连接的方法:首先下载安装mysql和qt;然后在“cmd.exe”软件中,输入...
    99+
    2022-10-18
  • phpMyAdmin设置远程连接数据库的方法
    这篇文章给大家分享的是有关phpMyAdmin设置远程连接数据库的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。phpMyAdmin怎么设置远程连接数据库首先要在服务器上建立...
    99+
    2022-10-18
  • win10设置远程连接的方法
    这篇文章主要介绍了win10设置远程连接的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。win10系统远程桌面连接步骤:首先右键单击左下角的Win图标,选择设置;接着点击...
    99+
    2023-06-12
  • Java系统变量参数获取设置System.getProperties()的方法
      1.获取 String osName =System.getProperties().getProperty("os.name"); System.out.print...
    99+
    2022-11-13
  • 配置SQL Developer连接MySQL的方法
    去MySQL官网下载数据库连接的 jar 包 http://dev.mysql.com/downloads/connector/j/ 将 jar 包放入Sql Developer的安装目录下的 jlib ...
    99+
    2022-10-18
  • php获取api接口数据的方法
           API是应用程序的开发接口,在开发程序的时候,我们有些功能可能不需要从到到位去研发,我们可以拿现有的开发出来的功能模块来使用,而这个功能模块,就叫做库(libary)。比如说:要实现数据传输的安全,这就要使用加密技术,使用加密...
    99+
    2023-09-14
    php json 开发语言
  • golang结合mysql设置最大连接数和最大空闲连接数
    目录1.最大连接数测试2.最大空闲连接数测试3.参考本文介绍golang 中连接MySQL时,如何设置最大连接数和最大空闲连接数。 关于最大连接数和最大空闲连接数,是定义在golan...
    99+
    2022-11-13
  • mysql连接数据库的方法
    小编给大家分享一下mysql连接数据库的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!连接方法:1、打开DOS窗口,进入目录...
    99+
    2022-10-18
  • 配置phpmyadmin连接远程mysql数据库的方法
    这篇文章主要介绍配置phpmyadmin连接远程mysql数据库的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!引言:1、phpmyadmin程序所在服务器:192.168.1....
    99+
    2022-10-18
  • php7配置mysqli和使用mysqli连接mysql的方法
    这篇文章主要介绍php7配置mysqli和使用mysqli连接mysql的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php7配置mysqli和使用mysqli连接mysql如果使用了wamp和lamp环境搭建...
    99+
    2023-06-14
  • JDBC获取数据库连接的5种方式实例
    目录方式一:直接通过数据库厂商提供的相关驱动方法二:通过反射的方式来构造Driver对象方式三:使用DriverManager来替换Driver获取连接方法四:省略创建Driver对...
    99+
    2022-11-13
  • Java系统变量参数获取设置的方法是什么
    在Java中,可以使用以下方法来获取和设置系统变量参数:1. 获取系统变量参数:- 使用`System.getProperty(St...
    99+
    2023-08-16
    Java
  • vc 连接mysql数据库的方法
    这篇文章给大家分享的是有关vc 连接mysql数据库的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。vc连接mysql数据库的方法:首先打开VC6;然后在中间列表框中添加本地...
    99+
    2022-10-18
  • .net连接mysql数据库的方法
    小编给大家分享一下.net连接mysql数据库的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!net连接mysql数据库的方...
    99+
    2022-10-18
  • Nacicat连接MySQL数据库的方法
    Nacicat连接MySQL数据库的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!1、安装好MySQL和Navicat...
    99+
    2022-10-18
  • C#连接Mysql数据库的方法
    C#连接Mysql数据库的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!本文讲的是C#连接Mysql数据库,下文附有详...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作