当前位置:首页 > 日记 > 正文

MySQL性能优化的配置参数thread_cache和table_cache详细解决方案

MySQL性能优化的配置参数thread_cache和table_cache详细解决方案
1。thread_cache

MySQL客户端的要求,为了提高性能创建连接的过程,提供了一个连接池thread_cache连接池、线程空闲的连接池,而不是立即销毁。这样的好处是,当有一个新的要求,MySQL将不会立即创建连接螺纹连接而去thread_cache找到自由线程,如果直接使用,不存在,创建一个新的螺纹连接。

有thread_cache MySQL中的几个重要参数,分别简要介绍如下:

thread_cache_size

thread_cache存储在线程的最大连接数。在thread_cache在短连接的应用效果是非常明显的,因为在连接和创建应用程序的数据库是非常频繁的,如果你不使用thread_cache作为资源消耗是非常令人印象深刻的!在长连接的同时并没有改善短接线如此明显,但效益明显。但不是越大越好的决心,而不是浪费资源,一般有一定的关系和物理内存,如下所示:

复制代码代码如下所示:

1G - 8

2G - 16

3G > 32

> 3G > 64
如果短连接较多,则可以适当增加。

thread_stack

当每个连接被创建时,MySQL分配给它的内存。这个值一般假定默认情况下可以应用于大多数场景,除非有必要,不要移动它。

thread_handing

对thread_cache连接使用,5.1.19增添新的功能。有两种可选{没有螺纹|一线程每连接}值看字面意思你应该猜八或九点,哈哈,没有线程服务器使用一个线程每连接的服务器为每个客户端请求的线程使用一个线程。在原始手册中提到,在Linux测试中没有线程被关闭。

复制代码代码如下所示:

MySQL >显示变量like'thread %;

+ + +

| variable_name |价值|

+ + +

| thread_cache_size | 32 |

| thread_handling | |每连接一个线程

| thread_stack | 196608 |

+ + +

3行(0.01秒)

显示%连接%的状态;

+ + +

| variable_name |价值|

+ + +

|连接| 199156 |

| max_used_connections | 31 |

+ + +

2行(0秒)

显示%线程%的状态;

+ + +

| variable_name |价值|

+ + +

| delayed_insert_threads | 0 |

| slow_launch_threads | 0 |

| threads_cached | 3 |

| threads_connected | 6 |

| threads_created | 8689 |

| threads_running | 5 |

+ + +

6行(0秒)

Through the above 3 commands, we can see that there are at most 32 connection threads in the thread_cache pool of the server, and one thread for each client ball. 为每个连接线程分配内存空间192k。

服务器共有199156次,最大并发连接数是31,目前在thread_cashe池连接数为3,连接数为6,有效5,共8689次创建连接。显然这里是短连接。你可以计算为thread_cache命中率的公式:

复制代码代码如下所示:

thread_cache_hit =(connections-thread_created) /连接* 100%
的thread_cache切中当前服务器率大约是95.6%,这是相当令人满意的。但可以看出,thread_cache_size有点多余,这是更合理的将它更改为16或8。

二,table_cache(5.1.3和后来的版本也被称为table_open_cache)

因为MySQL是一个多线程机制,为了提高性能,每个线程都打开自己的表描述符,而不是共享它。不同的存储引擎是不同的。

在MyISAM引擎,数据文件描述符(广义)不共享,但共享索引文件描述符的所有线程,InnoDB使用表空间的类型,如果是共享表空间,数据文件描述符的实际数据文件将占用更少的空间比表。

个人觉得有点像PHP fopen打开一个连接。数据完成后,它不会立即关闭,而是缓存。等待下一个连接时,文件的请求不需要重新打开文件。

手册描述了表打开的时间:

复制代码代码如下所示:

MyISAM表打开每个并发访问。这意味着如果两个线程访问同一个表,或者一个线程在同一个查询中访问两次表(例如,通过将表连接到自身,每个并发打开),那么表需要打开两次。需要表缓存中的条目。任何MyISAM表先打开需要两个文件描述符:一个数据文件和一个索引文件。表的每一个额外的使用只为数据文件使用一个文件描述符。索引文件描述符在所有线程之间共享。
如果你是在处理tbl_name开语句打开一个表,一个表将被分配专门的线程。表不被其他线程共享的,只有当线程调用处理程序tbl_name关闭或线程终止。表后关闭,桌子拉开表缓存(如果高速缓存是不满意)。

推荐的大小在MySQL手册:table_cache = max_connections×n

n表示查询语句中的最大表数,临时表和文件需要一些附加的文件描述符。

这个数据存在很多疑问。如果table_cache是不够的,检查opened_tables价值。如果这个值很大或是很快的,你要考虑增加table_cache。

在下列条件下,未使用的表将被关闭并从表缓存中删除:

当缓存满时,一个线程试图打开一个不在缓存中的表。

当缓存包含多table_cache条目,缓存中的表是没有任何线程使用。

当表刷新操作发生,它发生在FLUSH TABLES语句执行或mysqladmin flush-tables刷新或mysqladmin命令被执行。

当表被缓存时,服务器使用以下过程查找要使用的缓存条目:

当前未使用的表被释放,最近使用的顺序。

如果缓存已满且没有表可以释放,则需要打开一个新表,缓存必须临时展开。

如果缓存处于临时扩展状态,表从使用中更改为非使用状态,则它将从缓存中关闭并释放。

对于table_cache几个状态值:

1。table_cache:由所有线程的打开的表的数量。增加这个值可以增加文件描述符需要由mysqld数。默认值是64。

2。open_tables:表正在打开数。

三.opened_tables:表缓存未命中数,如果opened_tables较大,该table_cache值可能太小。

4。open_table_definitions:数FRM文件缓存。添加了这个变量。

5。opened_table_definitions:数量已缓存的FRM文件。这个变量

相关文章

MySQL索引的建立需要注意以下细节

MySQL索引的建立需要注意以下细节

索引,需要注意,细节,电脑软件,MySQL,1。建立索引的时间:如果表中的字段出现在选择、筛选、排序条件中,那么为这个字段建立索引是值得的。 2。对于像xxx这样的模糊查询,普通索引不满足,需要全文索引。 三.在许多情况下,例如:…在XXX和YYY B = =…

在桌面上新系统win8/8.1运行软件

在桌面上新系统win8/8.1运行软件

上新,系统,桌面,运行,电脑软件,评论:升级到Windows 8或Windows 8.1之后,要考虑的问题是桌面软件是否能在新系统上正常运行。微软已经为这项工作提供了解决方案,您可以参考它。 当我们升级我们的旧的Windows系统,Windows 8或Windows 8.1,我们可能…

Linux自动运行RMAN增量备份脚本

Linux自动运行RMAN增量备份脚本

脚本,增量备份,自动运行,电脑软件,Linux,1。增量备份脚本 0级备份脚本:红色部分是一个用于定制备份文件的目录。 复制代码代码如下所示: #:backupfull.sh脚本。 #生成器:XYH #日期:2014-03-08 #属性:备份完整的数据库文件在归档与RMAN #连接数据…

MySQL中的各种SQL语句,从一天、一周

MySQL中的各种SQL语句,从一天、一周

获取数据,语句,一个月,电脑软件,MySQL,创建表: 复制代码代码如下所示: 如果不存在,则创建表 ( ID int, 加入时间日期默认'0000-00-00 00:00:00 ) 添加两个初始数据: 插入T值(1,'2012-07-12 21:00:00); 插入T值(2,'2012-07-22 21:00:00); 1。每日或日…

excel使用圆函数使四rms五更准确。

excel使用圆函数使四rms五更准确。

函数,五更,准确,电脑软件,excel,在前面,我们介绍了用int函数构造四个函数和五个函数的方法。然而,有时我们会遇到更多的四位数的五个小条目。用int函数构造起来有点困难。Excel的功能可以帮助我们。轮函数返回一个数的一个指定的位数取整后,语…

微信卡包优惠券的详细使用方法介绍

微信卡包优惠券的详细使用方法介绍

微信卡包优惠券的详细使用方法介绍,微信,卡包优惠券,大家知道怎么使用微信里卡包优惠券吗?不知道没有关系,小编今天给大家带来微信卡包优惠券的详细使用方法介绍,希望可以帮助到你哦。微信卡包优惠券的详细使用方法介绍1、第一步你必须关注麦…

如何在Win8系统查看所有的系统更新

如何在Win8系统查看所有的系统更新

系统,历史记录,如何在,电脑软件,评论:如何看待Win8系统更新的历史吗这个问题必须由许多朋友提出。事实上,在控制面板中单击Windows Update非常简单。可以根据以下操作进行检查,感兴趣的朋友不能错过。 Win8看的方法来更新系统的历史如下: 1,输…

Flash播放器插件在Win8升级IE10是

Flash播放器插件在Win8升级IE10是

升级,提示,插件,播放器,电脑软件,点评:为了升级Flash播放器插件在IE10,我们利用金山村后卫清理Flash插件。它提示以更新更新。这个解决方案非常简单。只需打开Windows Update系统更新,具体操作如下。有兴趣的朋友可以参考一下。 问题:为了升级F…

申请重置密码保护和帐户上诉有什么

申请重置密码保护和帐户上诉有什么

帐户,重置密码,有什么区别,电脑软件,申请重置密码保护和帐户上诉有什么区别 适用于重置密码保护:当您忘记或丢失密码保护,并且没有其他可用的安全性时,您可以重新设置密码保护应用程序。当应用程序成功时,您所设置的新密保险系统将生效。 帐…

wps2012文本可以方便地调整段落

wps2012文本可以方便地调整段落

文本,调整,段落,电脑软件,一个办公室职员经常在文档的文本整理出版是家常便饭,几乎每天都在做这些事情的时候,这些上班族最需要的是工作更智能、更简单,所以不会有很多时间花在整理排版,段落,段落设置前后段落缩进,行间距,等。 在wps2012文本,我们…

MyEclipse配置数据库资源管理器(图)

MyEclipse配置数据库资源管理器(图)

配置,资源管理器,数据库,电脑软件,MyEclipse,意图是写和JDBC控件,而不是原来的手写名和连接。 打开CMD并输入记事本,直接打开记事本。 无需配置classpath在JDK1.5。…

在Excel条目中打开单元格自动下拉

在Excel条目中打开单元格自动下拉

下拉菜单,条目,单元格,电脑软件,Excel,当我们需要输入大量的Excel表格中的重复数据,我们经常使用的数据创建了一个下拉菜单来提高重复数据的输入速度是有效的。但在实际的操作过程中,我们必须选择要输入重复数据,单击下拉箭头在单元格的右侧看…