mysql中key_buffer_size参数优化

mysql数据库中,key_buffer_size是对MYISAM表性能影响最大的参数。

下面以MYISAM为主要存储引擎服务器的配置:

MariaDB [(none)]> show variables like ‘key_buffer_size‘;

+-----------------+-----------+

| Variable_name   | Value     |

+-----------------+-----------+

| key_buffer_size | 134217728 |

+-----------------+-----------+

分配128M内存给key_buffer_size。

而key_buffer_size的使用情况:

MariaDB [(none)]> show global status like ‘key_read%‘;

+-------------------+--------+

| Variable_name     | Value  |

+-------------------+--------+

| Key_read_requests | 181043 |

| Key_reads         | 29     |

+-------------------+--------+

一共181043个索引请求,有29个请求在内存中没有找到,直接从硬盘中读取索引

计算索引未命中缓存的概率:

key_cache_miss_rate = Key_reads / Key_read_requests * 100%

根据key_cache_miss_rate数据判断:>0.1%则要适当调大key_buffer_size的值;

<0.1%,>0.01% 适合 ;

<0.01%    分配的key_buffer_size过大,浪费,适当调小。

key_blocks_*参数

MariaDB [(none)]> show global status like ‘key_blocks_u%‘;

+-------------------+--------+

| Variable_name     | Value  |

+-------------------+--------+

| Key_blocks_unused | 107170 |

| Key_blocks_used   | 1      |

+-------------------+--------+

key_blocks_unused表示从未被使用到的内存簇,就算曾经分配最大内存时,也还剩余的量。若为0,则表示最大使用时key_buffer全部使用;

key_blocks_used表示曾经使用到的最大的blocks
比较理想的设置:

Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% ≈ 80%

时间: 2024-10-15 17:20:38

mysql中key_buffer_size参数优化的相关文章

mysql中max_allowed_packet参数的配置方法(避免大数据写入或者更新失败)

这篇文章主要介绍了mysql中max_allowed_packet参数的配置方法,以及查看max_allowed_packet参数当前值的方法,需要的朋友可以参考下 MySQL根据配置文件会限制Server接受的数据包大小.有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置: 复制代码 代码如下: show VARIABLES like '%max_allowed_packet%'; 显示的结果为: 复制代码 代码如下: +------

Nginx中FastCGI参数优化

FastCGI: FastCGI是从CGI发展改进而来的.传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器.这在处理高并发访问时,几乎是不可用的.另外传统的CGI接口方式安全性也很差,现在已经很少被使用了. FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程.当HTTP服务器每次遇到动态程序时,可以将其直接交付给Fast

MySQL中索引和优化的用法总结

1.什么是数据库中的索引?索引有什么作用? 引入索引的目的是为了加快查询速度.如果数据量很大,大的查询要从硬盘加载数据到内存当中. 2.InnoDB中的索引原理是怎么样的? InnoDB是Mysql的默认存储引擎,InnoDB有两种索引:B+树索引和哈希索引,其中哈希索引是自适应性的,存储引擎会根据表的使用情况,自动创建哈希索引,不能人为的干涉. B树.B-树.B+树.B*树四种数据结构在索引中的运用,这四种数据结构的顺序必须是这样的.分别阐述如下: B树:二叉树,每个结点只存储一个关键字,等于

DB服务器中的参数优化

1.swappiness 禁止系统使用swap空间,配置/etc/sysctl.conf中的vm.swappiness=0 2.Scheduler调度 Scheduler调度,指的是磁盘的IO调度算法,下面聊一聊linux的几种IO调度算法 查看当前系统磁盘的sda的IO调度算法. cat /sys/block/sda/queue/scheduler 其中: noop(No Operation,电梯式调度算法):通过一个简单的FIFO(先进先出)队列将请求按先来先处理的顺序处理,但对于相邻的IO

MySQL中binlog参数:binlog_rows_query_log_events

在使用RBR也就是行格式的时候,去解析binlog,需要逆向才能分析出对应的原始SQL是什么,而且,里面对应的是每一条具体行变更的内容.当然,你可以开启general log,但如果我们需要的只是记录对应的行变更,而不需要记录这些select普通的查询,因为general log 会将线上所有的操作都记录下来,这种功能适合于我们审核统计,但是不适合我们对事务进行判断,故此,我们使用binlog_rows_query_log_events进行查看.在官网中的解析如下 binlog_rows_que

mysql中链接参数、文件参数、缓存控制参数

一 连接参数: 二 文件参数相关 三 缓存控制参数

MySQL 中的文件!!

mysql 中文件 参数文件:MySQL配置文件,保存着mysql的配置信息.文件名my.cnf 默认情况,mysql实例会按照一定顺序在指定的文件读取配置文件,用户可以通过 mysql --help | grep  my.cnf 来寻找配置文件 也可以通过 whereis 命令来查找my.cnf文件 [[email protected] ~]# mysql  --help | grep  my.cnf order of preference, my.cnf, $MYSQL_TCP_PORT,

sql点滴37—mysql中的错误Data too long for column &#39;&#39; at row 1

原文:sql点滴37-mysql中的错误Data too long for column '' at row 1   1.MYSQL服务 我的电脑——(右键)管理——服务与应用程序——服务——MYSQL——开启(停止.重启动) 2.命令行方式 Windows 1.点击“开始”->“运行”(快捷键Win+R). 2.启动:输入 net stop mysql 3.停止:输入 net start mysql 提示* Redhat Linux 也支持service command,启动:# servic

MySQL存储过程单参数或多参数传递

MySQL开发的存储过程几乎都需要参数.这些参数使存储过程更加灵活和有用. 在MySQL中,参数有三种模式:IN,OUT或INOUT. 1,单参数 in DELIMITER $$USE dc3688$$CREATE PROCEDURE GetOfficeByCountry(IN countryName VARCHAR(255))BEGINSELECT * FROM officesWHERE country = countryName;END$$ DELIMITER ; 2,多参数 (in out