show global variables like 'wait_timeout';1 timeout 只是针对空闲会话有影响 。2 session级别的wait_timeout继承global级别的interactive_timeout的值 。而global级别的session则不受interactive_timeout的影响 。
3 交互式会话的timeout时间受global级别的interactive_timeout影响 。因此要修改非交互模式下的timeout,必须同时修改interactive_timeout的值 。
4 非交互模式下,wait_timeout参数继承global级别的wait_timeout 。
如果不配的后果:
系统默认为28800配置实例:
interactive_timeout = 60018)wait_timeout
同interactive_timeout,两个值都设成一样 。
19)read_buffer_size
推荐设置:
4194304作用:
这个值其实轻易是用不到的,因为,它只对2种场景的full table scan产生影响而不是所有的full table scan,同时从mysql5.6以后开始没有数据块多块读的功能,与是否设置 read_buffer_size参数无关 。应用场景:
1)SELECT INTO … OUTFILE ‘fileName‘
2)When filesort is used, during merge buffers and when merged results are written to a temporary file, then writes are buffered
一般保留默认:64k,保守作法是设置在1~4M,不过它的应用场景很有限,对于互联网场景真的不太用,我推荐设成4M
如果不配的后果:
默认为64k配置实例:
read_buffer_size = 419430420)read_rnd_buffer_size
推荐设置:
8388608作用:
就是当数据块的读取需要满足一定的顺序的情况下,MySQL 就需要产生随机读取,进而使用到 read_rnd_buffer_size 参数所设置的内存缓冲区 。它的默认为256k,最大可以设到2G,它会对order by关键字起作用,当order by的计划成本超出了sort_buffer_size后,mysql会产用随机读取并消耗额外的内容,很多外面的博客说它是只对myisam引擎起作用,但其实不是,该参数还真的覆盖到所有引擎,一般它的推荐设置在8-16M,我推荐8M,根据sql分析计划如果碰到高频的查询且order by的返回包体都很大,那么再在session级别去放 。
如果不配的后果:
默认为256k配置实例:
read_rnd_buffer_size = 838860821)sort_buffer_size
推荐设置:
4194304作用:
每个会话执行排序操作所分配的内存大小 。想要增大max_sort_length参数,需要增大sort_buffer_size参数 。如果在SHOW GLOBAL STATUS输出结果中看到每秒输出的Sort_merge_passes状态参数很大,可以考虑增大sort_buffer_size这个值来提高ORDER BY 和 GROUP BY的处理速度 。建议设置为1~4MB 。当个别会话需要执行大的排序操作时,在会话级别增大这个参数 。所谓会话级别,我举个例子,你拍脑袋一下,说我设个32M,你所它乘10,000请求,这得多大内存 。另外,千万要注意,在mysql内存,当你的sort_buffer_size在超过2K时在底层使用的是mmap()的c函数去做内存分配的,而不是malloc(),做过c的都知道mmap()是一个矢量单位,因此它会付出性能的影响,能影响多少呢?单条sql影响值在30% 。
如果不配的后果:
默认值为1M配置实例:
sort_buffer_size =419430422)innodb_page_size
推荐设置:
8192作用:
- 这个值可要小心,一般它在设置后就不能轻易改了,一般来说我们都认为,值越大越好,不是的,这个值它的原理是这样的:size越小,内存划分粒度越大,使用率越高,但是会有其他问题,就是限制了索引字段还有整行的大小 。innodb引擎读取内存还有更新都是一页一页更新的,这个innodb_page_size决定了,一个基本页的大小 。常用B+Tree索引,B+树是为磁盘及其他存储辅助设备而设计一种平衡查找树(不是二叉树) 。B+树中,所有记录的节点按大小顺序存放在同一层的叶子节点中,各叶子节点用指针进行连接 。MySQL将每个叶子节点的大小设置为一个页的整数倍,利用磁盘的预读机制,能有效减少磁盘I/O次数,提高查询效率 。如果一个行数据,超过了一页的一半,那么一个页只能容纳一条记录,这样B+Tree在不理想的情况下就变成了双向链表 。我们拿白话来说就是:你越大,空间利用率更高,但是越小呢越有助于性能但是这边一定一定有一个“但是”,但是小到一定的量反而性能不好,为什么呢?太大上面我已经举例了,太小 。。。mysql的页间的check point太频繁 。怎么样做才能达到一个合理值呢?
推荐阅读
- 淘宝店铺好评率如何快速提升 淘宝好评率低于多少有影响
- 高性能网络通信框架 HP-Socket v5.7.2
- 多云架构的3个常见性能挑战和解决方案
- 2分钟学会,提升你气质的20个小习惯
- 淘宝店的物流服务怎么提升 如何提高物流时效
- 淘宝新店铺怎么刷销量 淘宝店铺怎么提升流量和销量
- 在桌面上创建一个关机快捷方式,只需一条命令,关机速度大幅提升
- 月经期间女性能做瑜伽吗?
- 淘宝每天转化率百分之多少最好 淘宝怎么提升转化率
- 淘宝客单价高的产品怎么刷 淘宝货单价怎么提升
