mysql Key_buffer_size参数的设置

在mysql数据库中,mysql key_buffer_size是对MyISAM表性能影响最大的一个参数,下面就将对mysql Key_buffer_size参数的设置进行详细介绍,供您参考。

下面一台以MyISAM为主要存储引擎服务器的配置:
mysql> show variables like ‘key_buffer_size‘;
+-----------------+------------+
| Variable_name | Value |
+-----------------+------------+
| key_buffer_size | 536870912 |
+-----------------+------------+
分配了512MB内存给mysql key_buffer_size,我们再看一下key_buffer_size的使用情况:
mysql> show global status like ‘key_read%‘;
+------------------------+-------------+
| Variable_name | Value |
+------------------------+-------------+
| Key_read_requests | 27813678764 |
| Key_reads | 6798830 |
+------------------------+-------------+
一共有27813678764个索引读取请求,有6798830个请求在内存中没有找到直接从硬盘读取索引,计算索引未命中缓存的概率:

key_cache_miss_rate = Key_reads / Key_read_requests * 100%

比如上面的数据,key_cache_miss_rate为0.0244%,4000个索引读取请求才有一个直接读硬盘,已经很BT了,key_cache_miss_rate在0.1%以下都很好(每1000个请求有一个直接读硬盘),如果key_cache_miss_rate在0.01%以下的话,key_buffer_size分配的过多,可以适当减少。
MySQL服务器还提供了key_blocks_*参数:
mysql> show global status like ‘key_blocks_u%‘;
+------------------------+-------------+
| Variable_name | Value |
+------------------------+-------------+
| Key_blocks_unused | 0 |
| Key_blocks_used | 413543 |
+------------------------+-------------+
Key_blocks_unused表示未使用的缓存簇(blocks)数,Key_blocks_used表示曾经用到的最大的blocks数,比如这台服务器,所有的缓存都用到了,要么增加key_buffer_size,要么就是过渡索引了,把缓存占满了。比较理想的设置:
Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% ≈ 80%

mysql Key_buffer_size参数的设置

时间: 2024-10-07 11:35:36

mysql Key_buffer_size参数的设置的相关文章

MySQL启动参数(二) —— key_buffer_size

为了最小化磁盘的IO,MyISAM存储引擎的表使用key cache来缓存索引块,索引块的缓存大小由key_buffer_size参数来设置,如果数据库中使的表以MyISAM存储引擎为主,则应该适当增加该参 数的值,以便尽可能的缓存索引块,提高访问的速度. 默认情况下,所有的索引都使用相同的key cache,当访问的索引不在缓存中时,使用LRU(Least Recently Used最近最少使用)算法来替换缓存中最近最少使用的索引块,为了进一步避免对key cache的争用,从MSQL5.1开

MySQL优化:mysql服务运行参数的设置

可以用管理员登录在mysql>命令行下设置,设置是临时的. 如果希望永久生效,则要修改/etc/my.cnf文件中的[mysqld]下相关参数: #vim /ect/my.cnf [mysqld] -- 下面详细讲解相关运行参数的设置: 1.并发连接数设置    max_connections 最大并发连接数的设置公式:曾经有过的最大连接数/要设置的最大连接数*100%约等于85%时是合适的,15%应付突发访问量 mysql> show  variables like  "max_c

mysql基础--global参数和session参数的设置

1.修改my.ini配置文件,如果要设置全局参数最简单的方式是在my.ini文件中直接写入参数配置,如下图所示.重启数据库服务就可以使全局参数生效. 如下图所示,所有新开的session中的参数都生效了 2.在不修改配置文件的基础上,设置全局参数,set global autocommit=1;将autocommit参数的值设置为ON 其他session窗口中的参数也没有生效 由上图可以看出设置了全局参数,但是查询出来的autocommit参数还是没有发生变化.是我们设置失败了吗?不是的,此时需

关于MySql链接url参数的设置

mysql JDBC URL格式如下: jdbc:mysql://[host:port],[host:port].../[database][?参数名1][=参数值1][&参数名2][=参数值2]... 常用的几个较为重要的参数: 参数名称 参数说明 缺省值 最低版本要求 user 数据库用户名(用于连接数据库) 所有版本 passWord 用户密码(用于连接数据库) 所有版本 useUnicode 是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gb

MySQL数据库参数设置不当导致应用不能连接问题

OA(Tomcat+MySQL)最近有些问题,周五请厂家的技术远程调试了一下.调试过程如下: 1.对OA数据库索引进行了优化: 2.修改数据库最小连接数,由原来的30改为5: 3.修改MySQL数据库参数,添加了 transaction-isolation = Read Committed . 因为调试的时候是工作时间,修改完成后没有重启数据库和应用.周六早上我重启了,可是始终重启失败,厂家的技术联系不上.只好自己进行解决了. 回顾一下他修改的几个,第一二条都不会造成应用启动不了的情况,看来只有

MySQL配置文件mysql.ini参数详解、MySQL性能优化

MySQL配置文件mysql.ini参数详解.MySQL性能优化 my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数. my.ini分为两块:Client Section和Server Section.   Client Section用来配置MySQL客户端参数.   要查看配置参数可以用下面的命令: show variables like '%innodb%'; # 查看innodb相关配置参数 show status like

mysql启动参数(/etc/my.cnf)详解汇总

在linux下面的/etc/my.cnf的参数详解汇总 MYSQL–my.cnf配置中文详解 basedir = path   使用给定目录作为根目录(安装目录). character-sets-dir = path   给出存放着字符集的目录. datadir = path   从给定目录读取数据库文件. pid-file = filename   为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统); Init-V脚本需要使用这个文件里的进程ID结束mysqld进

MySQL缓存参数优化(转)

MySQL 数据库性能优化之缓存参数优化 数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所以,要优化数据库,首先第一步需要优化的就是 IO,尽可能将磁盘IO转化为内存IO.本文先从 MySQL 数据库IO相关参数(缓存参数)的角度来看看可以通过哪些参数进行IO优化. query_cache_size/query_cache_type (global) Qu

MySQL配置文件my.cnf设置

转自 http://www.blogjava.net/baoyaer/articles/209466.html 设置建议: 对于单台运行的WEB服务器,建议加上: skip-locking skip-name-resolve skip-networking 在PHP链接数据库时使用"LOCALHOST".这样MySQL 客户端库将覆盖之并尝试连接到本地套接字.( 我们可以从PHP.INI中 代码: ; Default socket name for local MySQL connec