Mysql thread-cache-size参数

https://dev.mysql.com/doc/refman/8.0/en/connection-interfaces.htmlhttps://www.cndba.cn/hbhe0316/article/22626

https://www.cndba.cn/hbhe0316/article/22626
https://www.cndba.cn/hbhe0316/article/22626

系统变量thread_cache_size决定了线程缓存的大小。默认情况下,服务器在启动时自动设置该值,但可以显式设置该值以覆盖此默认值。值为0禁用缓存,这将导致为每个新连接设置一个线程,并在连接终止时处理该线程。要缓存N个非活动的连接线程,可以在服务器启动或运行时将thread_cache_size设置为N。当与连接线程相关联的客户端连接终止时,连接线程将变为不活动状态。
要监视缓存中的线程数量以及由于无法从缓存中获取线程而创建的线程数量,请检查Threads_cached和Threads_created状态变量。
当线程堆栈太小时,这会限制服务器可以处理的SQL语句的复杂性、存储过程的递归深度和其他消耗内存的操作。要为每个线程设置N字节的堆栈大小,启动服务器时将thread_stack设置为N。https://www.cndba.cn/hbhe0316/article/22626

服务器应该缓存多少线程以供重用。当客户端断开连接时,如果该客户端的线程少于thread_cache_size线程,那么该客户端的线程将被放入缓存中。如果可能的话,通过重用从缓存中获取的线程来满足对线程的请求,只有当缓存为空时,才会创建一个新线程。如果有很多新连接,可以增加这个变量以提高性能。通常,如果您有一个好的线程实现,这不会提供显著的性能改进。然而,如果您的服务器每秒看到数百个连接,您通常应该将thread_cache_size设置得足够高,以便大多数新连接使用缓存线程。通过检查Connections和Threads_created状态变量之间的差异,您可以看到线程缓存的效率

8 + (max_connections / 100)

如果是短连接,适当设置大一点,因为短连接往往需要不停创建,不停销毁,如果大一点,连接线程都处于取用状态,不需要重新创建和销毁,所以对性能肯定是比较大的提升。
对于长连接,不能保证连接的稳定性,所以设置这参数还是有一定必要,可能连接池的问题,会导致连接数据库的不稳定性,也会出现频繁的创建和销毁,但这个情况比较少,如果是长连接,可以设置成小一点,一般在50-100左右。https://www.cndba.cn/hbhe0316/article/22626

https://www.cndba.cn/hbhe0316/article/22626https://www.cndba.cn/hbhe0316/article/22626

1.设置thread_cache_size,修改/etc/my.cnf文件https://www.cndba.cn/hbhe0316/article/22626https://www.cndba.cn/hbhe0316/article/22626https://www.cndba.cn/hbhe0316/article/22626

[root@mysql57 ~]# cat /etc/my.cnf | grep -i thread_cache_size
thread_cache_size = 100
[root@mysql57 ~]# service mysqld restart
Shutting down MySQL.... SUCCESS! 
Starting MySQL.. SUCCESS! 
mysql> show variables like "thread_cache_size";
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| thread_cache_size | 100   |
+-------------------+-------+
1 row in set (0.00 sec)

版权声明:本文为博主原创文章,未经博主允许不得转载。

MYSQL

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 8.0 中的参数优化可以通过调整一些重要的配置参数来提高数据库的性能。以下是一些常见的参数优化建议: 1. 缓冲池参数 (InnoDB Buffer Pool Size):通过增加 innodb_buffer_pool_size 参数的值,可以增加 InnoDB 存储引擎使用的缓冲池大小,提高读取数据的速度。 2. 查询缓存 (Query Cache):MySQL 8.0 已经移除了查询缓存功能,因此不再需要设置相关参数。如果你的应用程序需要使用查询缓存功能,可以考虑使用其他方式来实现,例如使用 Redis 或 Memcached。 3. 并发连接数 (Max Connections):根据你的应用程序负载情况,合理设置 max_connections 参数,以限制并发连接数。过多的连接数可能会导致性能下降。 4. 线程缓存 (Thread Cache):适当调整 thread_cache_size 参数的值,以避免频繁创建和销毁线程。较大的值可以提高性能,但过大可能会占用过多内存。 5. 查询优化器 (Query Optimizer):通过分析和优化查询语句,使用正确的索引、适当的 JOIN 操作等,可以提高查询性能。了解如何正确使用索引,并使用 EXPLAIN 命令来查看查询执行计划。 6. 日志文件 (Log Files):适当配置日志文件大小和数量,以便适应你的应用程序需求。过大的日志文件可能会导致写入性能下降。 7. 内存配置 (Memory Configuration):合理配置 innodb_log_file_size 和 innodb_log_buffer_size 参数,以及其他相关的内存配置参数,以便优化事务日志的性能。 请注意,以上只是一些常见的参数优化建议,实际的优化策略还需要根据你的具体应用程序和数据库负载情况进行调整。建议在进行任何配置更改之前,先进行备份并进行适当的测试。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值