打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
简历上写 性能调优,结果被优化了!
userphoto

2024.01.15 广东

关注

你好,我是田哥

一位朋友找我做模拟面试,我看他简历上写了,有着实际项目的性能调优经验。这个不错,可以算是他的简历亮点之一。

虽说是亮点,亮点也可能是个坑。

背景:本科、非计算机专业、7年多工作经验、上海

为什么说亮点可能也是个坑?

前几天,他刚面试了一家公司,回来找我聊。

面试官当时问我做了什么性能优化?

我当时回答的是对MySQL数据库和一些SQL进行了调优,其中MySQL数据库调优主要是一些参数,比如连接数。

紧接着面试官马上问我为什么要调整连接参数?

MySQL默认连接数是多少?

最大连接数是多少?

如何查看当前数据库默认最大连接数?

4连环把我给整懵圈了~


连接数

默认连接数和最大连接数

MySQL的最大连接数可以通过参数max_connections进行设置。

在MySQL 5.5、5.6和5.7版本中,这个默认最大连接数均为151,且上限可以达到100000。

然而,其他版本的MySQL可能有所不同,例如mysql5.5.3的默认最大连接数为151,上限为1000。

在MySQL 5.0版本:默认的最大连接数为100,上限为16384。

比如我的mysql版本是8.2.0(使用命令:SELECT VERSION();查看当前数据库版本),其默认最大连接数也是151。

查看当前默认最大连接数

要查看当前的最大连接数配置,可以使用命令show variables like '%max_connections%';。同时,如果需要修改最大连接数,有两种主要方法:一种是实时(临时)修改此参数的值;另一种是在配置文件my.ini中设置max_connections的值。

image

mysqlx_max_connections 是一个参数,主要用于控制通过MySQL X协议(这是用于MySQLmysqlx_max_connections 是一个参数,主要用于控制通过MySQL X协议(这是用于MySQL的新的高级协议)连接到MySQL服务器的最大连接数。这个协议提供了更现代和强大的功能,比如支持异步查询和事务。mysqlx_max_connections 的值指定了服务器可以同时接受的最大MySQL X连接数。如果尝试建立的新连接超过这个限制,服务器将拒绝连接请求。

具体操作步骤如下:

实时(临时)修改此参数的值:可以在MySQL命令行中输入命令SET GLOBAL max_connections=新的数值;来即时改变最大连接数。

在配置文件my.ini中设置max_connections的值:首先需要打开MySQL安装目录下的my.ini文件,然后找到mysqld部分,添加或修改max_connections=新的数值

最后保存并关闭文件,然后重启MySQL服务使改动生效。


到这里,面试官会觉得你基本掌握了这个最大连接数设置和查看。

因为工作年限都7年了,再加上简历上有调优经验

面试官可能还会问:该设置多大?依据是什么?

为什么要修改最大连接数参数?

在以下场景中,可能需要调整MySQL的连接数:

  • 当服务器遇到高并发请求量时:如果一台服务器需要处理大量并发请求,那么提高MySQL的最大连接数可能有助于改善性能。然而,必须注意,随着连接数的增加,MySQL将为每个连接提供缓冲区,这将消耗更多的内存。因此,需要在机器能够支撑的情况下适当调整这个值。

  • 数据库查询速度变慢:如果发现数据库查询速度明显下降,可能是由于当前的连接数已经达到了MySQL的最大连接数限制。在这种情况下,提高最大连接数可能有助于提高查询性能。

  • 系统资源利用率低:如果发现系统资源(如CPU或内存)利用率低,这可能是因为MySQL的最大连接数设置得过高,导致许多空闲连接占用了系统资源。在这种情况下,可以考虑降低最大连接数以优化资源利用。

  • 某个用户占用过多连接:如果发现某个用户的连接数持续较高且没有释放,可能需要考虑限制该用户的最大连接数以防止影响其他用户的使用。

以上只是部分场景,你可以看看能不能套用在你的项目中去,这样至少不会冷场。

那到底应该设置多大呢?

最大连接数的设置可以参考以下建议(假设5.7版本):

最大连接数的默认值是151,但是考虑到并发连接的需求,特别是对于并发连接多的应用,这个数值可能不够用。因此,实际设定的最大连接数应该大于默认值,以满足业务需求。

在设置最大连接数时,应遵循一个规则,即最大连接数占上限连接数的85%左右。

例如:如果你将最大连接数设置为1000,那么理想情况下,使用中的连接数应大约为850。如果发现使用中的连接数占总连接数的比例在10%以下,这可能意味着你的MySQL服务器的最大连接数设置得过高了。

另外,虽然MySQL允许的最大连接数上限是100000,但是请务必在做出这样的调整之前确保你的服务器硬件和网络能够承受这么大的负载。

请注意,修改最大连接数的方式有两种:一种是使用命令设置,另一种是直接修改my.cnf文件。不过这两种方式都是临时修改,只能治标不能治本。

如果MySQL服务重启,它会恢复到默认的连接数(或者恢复到my.cnf文件中配置的最大连接数)。


面试嘛,还是要适当装装,但仅限于适当,一旦过了,你就回去等消息吧。

最后,给个建议:如果没有面试机会,你就多写点高大上牛X的东东(分库分表、分布式事务、性能调优、做过架构设计、项目重构等)。如果有机会那就要慎重点,不然很容易被所谓的亮点给咔嚓

好了,今天就分享这么多。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MySQL too many connections 之解决方法
Dedecms错误警告:连接数据库失败,可能数据库密码不对或数据库服务器出错怎么解决?
怎么查看和修改 MySQL 的最大连接数? | Lugir
查看mysql数据库连接数、并发数相关信息
[Z3001]connection to database ''zabbix'' failed: [1040] Too many connections 问题及处理
mysql控制台可用的命令
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服