max_connections:针对所有的账号所有的客户端并行连接到MYSQL办事的最大并行连接数。简单说是指MYSQL办事可以或许同时接管的最大并行连接数。
//1=1.25mb内存
max_user_connections : 针对某一个账号的所有客户端并行连接到MYSQL办事的最大并行连接数。简单说是指同一个账号可以或许同时连接到mysql办事的最大连接数。
max_connection_errors:针对某一个IP主机连接中断与mysql办事连接的次数,若是跨越这个值,这个IP主机将会阻拦从这个IP主机发送出去的连接恳求。碰到这种景象,需履行flush hosts。
key_buffer
索引
show status like "key_%"
+------------------------+-----------+
| Variable_name | Value |
+------------------------+-----------+
| Key_blocks_not_flushed | 0 |
| Key_blocks_unused | 319333 | 未用的key_buffer缓存簇(blocks)数
| Key_blocks_used | 10913 | 已用的key_buffer缓存簇数
| Key_read_requests | 135030864 | 请求key_buffer的次数
| Key_reads | 253 | key_buffer中找不到,读取磁盘的次数
| Key_write_requests | 3314618 |
| Key_writes | 34235 |
+------------------------+-----------+
key_buffer使用率 = (Key_blocks_used/(Key_blocks_used+Key_blocks_unused))*100%
key_buffer未命中率 = Key_reads/Key_read_requests*100%
query_cache_size
mysql> show status like 'Qcache_%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| Qcache_free_blocks | 5654 | //目前剩余的 Query Cache 中内存 Block 数目
| Qcache_free_memory | 15682784 | //目前剩余的 Query Cache 内存总量
| Qcache_hits | 34658070 | //命中query_cache的次数
| Qcache_inserts | 67537959 | //query_cache新增的次数(没有命中的次数)
| Qcache_lowmem_prunes | 1648364 | //query_cache满载后,将缓存数据移除的次数
| Qcache_not_cached | 232266744 |
| Qcache_queries_in_cache | 7584 | //当前Query Cache 中的SQL 数量
| Qcache_total_blocks | 21468 | //Query Cache的Block总量
+-------------------------+-----------+
query_cache命中率 = (Qcache_hits/(Qcache_hits+Qcache_inserts))*100%
thread_cache
mysql> show status like 'Threads_%';
+-------------------+--------+
| Variable_name | Value |
+-------------------+--------+
| Threads_cached | 4 | //缓存的连接
| Threads_connected | 16 | //目前连接数
| Threads_created | 246310 | //没使用thread_cache,而创建的连接
| Threads_running | 1 | //运行的连接数
+-------------------+--------+
thread_cache命中率=((Connections-Threads_created)/Connections)*100%
table_cache
mysql> show status like 'Open%tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Open_tables | 200 | //当前打开的表缓存数
| Opened_tables | 0 | //打开过的表缓存数
+---------------+-------+
如果Opened_tables 远大于table_cache,那说明table_cache太小了
innodb_buffer_pool_size
innodb_buffer_pool_size 定义了 InnoDB 存储引擎的表数据和索引数据的最大内存缓冲区大小。和 MyISAM 存储引擎不同, MyISAM 的 key_buffer_size 只能缓存索引键,而 innodb_buffer_pool_size 却可以缓存数据块和索引键。适当的增加这个参数的大小,可以有效的减少 InnoDB 类型的表的磁盘 I/O 。在一个以 InnoDB 为主的专用数据库服务器上,可以考虑把该参数设置为物理内存大小的 60%-70% ,在运行多个服务的服务器上,不宜过大,视情况5-20%即可。
mysql> SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_data';
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| Innodb_buffer_pool_pages_data | 1388 |
+-------------------------------+-------+
1 row in set (0.00 sec)
mysql> SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_total';
+--------------------------------+--------+
| Variable_name | Value |
+--------------------------------+--------+
| Innodb_buffer_pool_pages_total | 131071 |
+--------------------------------+--------+
1 row in set (0.00 sec)
mysql> SHOW GLOBAL STATUS LIKE 'Innodb_page_size';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| Innodb_page_size | 16384 |
+------------------+-------+
1 row in set (0.00 sec)
'Innodb_buffer_pool_pages_data' X 100 / 'Innodb_buffer_pool_pages_total'
当结果 > 95% 则增加 innodb_buffer_pool_size, 建议使用 ram total 75%
当结果 < 95% 则减少 innodb_buffer_pool_size,
建议 Innodb_buffer_pool_pages_data * Innodb_page_size * 1.05 / (1024*1024*1024)