手机版

用PHP mysq构建一个完美的网站需要注意的几个关键参数配置

时间:2021-08-07 来源:互联网 编辑:宝哥软件园 浏览:

类型:服务器面积大小:21M语言:中文评分:7.5标签页:立即下载以下文章,主要介绍与MySQL性能密切相关的五个配置参数。前几天在相关网站上看到了与MySQL性能密切相关的五个配置参数的数据,发现还挺不错的,就分享给大家,希望大家能有所收获。

(1)连接

连接通常来自网络服务器。以下是一些与连接相关的参数以及如何设置它们。

1、最大连接数

这是网站服务器允许的最大连接数。请记住,每个连接都需要使用会话内存(这将在本文后面讨论)。

2、允许最大数据包数

最大数据包大小通常等于您需要在一个大块中返回的最大数据集的大小。如果使用远程mysqldump,它的值需要更大。

3、中止_连接

检查系统状态的计数器,确保它没有增加。如果数量增加,则客户端在连接时遇到错误。

4、线程缓存大小

Inbound connection将在MySQL中创建一个新的线程,因为MySQL中打开和关闭连接既便宜又快,所以它没有其他数据库(如Oracle)那么多持久连接,但是线程预创建不会节省时间,这就是为什么需要MySQL线程缓存的原因。

如果它正在增长,请密切关注创建的线程,并使您的线程缓存更大。对于2550或100的thread_cache_size,内存使用量并不多。

(2)查询缓存

(3)临时表

内存速度很快,所以我们希望所有的排序操作都在内存中进行。我们可以通过调整查询使结果集变小,或者设置变量变大来在内存中进行排序。

tmp _表格_大小

最大堆表大小

每当在MySQL中创建临时表时,它都会使用这两个变量的最小值作为临界值。除了在磁盘上构建临时表之外,它还将创建许多会话,这将抢占有限的资源。因此,最好调整查询,而不是将这些参数设置得更高。同时,应该注意的是,带有BLOB或TEXT字段类型的表将被直接写入磁盘。简单来说,MySQL双向复制技术

(4)会话记忆

MySQL中的每个会话都有自己的内存,这是为SQL查询分配的内存,所以您希望使其尽可能大,以满足需求。但是您必须同时平衡数据库中一致会话的数量。这里看起来有点黑的是,MySQL按需分配缓存,所以你不能只是将它们相加,然后乘以会话数,估计这比MySQL的典型用法要大得多。

最佳做法是启动MySQL,连接所有会话,然后继续关注顶级会话的VIRT专栏。mysqld的行数通常相对稳定,这是实际的总内存使用量。减去所有静态MySQL内存区域,得到所有会话的实际内存,再除以会话数,得到平均值。

1、读取缓冲区大小

缓存连续扫描的块。该缓存跨存储引擎,而不仅仅是MyISAM表。

2、排序缓冲区大小

排序缓冲区的大小最好设置为1M-2M,然后在会话中设置,并为特定查询设置更高的值。

3、连接缓冲区大小

执行联合查询来分配缓冲区大小,将其设置为1M-2M,然后根据需要在每个会话中单独设置。

4、read_rnd_buffer_size

用于按操作排序和排序,最好设置为1M,然后可以设置为更大的值作为会话中的会话变量。

(e)慢查询日志

慢查询日志是MySQL非常有用的特性。

1、日志_慢速_查询

在my.cnf文件的MySQL参数中设置log _ slow _ queries参数,并将其设置为on。默认情况下,MySQL会将文件放在数据目录中,文件将以“host name -slow.log”的形式命名,但在设置该选项时也可以为其指定一个名称。

2、长查询时间

默认值为10秒。您可以将其从1动态设置为on。如果数据库已启动,日志将默认关闭。从5.1.21以及安装了Google patch的版本开始,这个选项可以以微秒为单位进行设置,这是一个惊人的功能,因为一旦消除了所有查询时间超过1秒的查询,调整就非常成功了,可以帮助您在问题变大之前消除问题SQL。

3、日志查询不使用索引

打开这个选项是个好主意,它实际上记录了返回所有行的查询。

摘要

我们介绍了五类MySQL参数,平时很少接触。这些参数在MySQL性能调优和故障诊断中非常有用。

MySQL中的缓存查询包括两个解析查询计划和返回的数据集。如果基础表的数据或结构发生变化,查询缓存中的项目将无效。

1、查询缓存最小资源单位

MySQL参数中的query_cache_min_res_unit查询缓存中的块就是用这个大小分配的。使用以下公式计算查询缓存的平均大小,并根据计算结果设置该变量,MySQL将更有效地使用查询缓存,缓存更多的查询,减少内存浪费。

2、查询缓存大小

此参数设置查询缓存的总大小。

3、查询缓存限制

这个参数告诉MySQL删除大于这个大小的查询。通常,大型查询相对较少,例如运行批处理来执行大型报告的统计信息,因此那些大型结果集不应该填满查询缓存。

qcache命中率=qcache _ hits/(qcache _ hits com _ select)

使用

SQL显示类似“qcache%”的状态;SQL显示像“com_%”这样的状态;

找到这些变量。

平均查询大小=(query _ cache _ sizeqcache _ free _ memory)/qcache _ query _ in _ cache

使用

SQL显示像“查询%”这样的变量;qcache_*您可以用: SQL获得的状态变量显示像“qcache%”这样的状态;

获取query_cache_size的值。

版权声明:用PHP mysq构建一个完美的网站需要注意的几个关键参数配置是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。