没有合适的资源?快使用搜索试试~ 我知道了~
MySQL参数配置优化手册.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 83 浏览量
2023-04-10
22:26:46
上传
评论
收藏 111KB DOC 举报
温馨提示
试读
19页
MYSQL
资源推荐
资源详情
资源评论
找到 MySQL 读取配置文件的顺序
# /usr/local/bin/mysql --verbose --help |grep -A 1 'Default options'
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql5-5-19/etc/my.cnf ~/.my.cnf
配置参数
key_buffer_size
设置这个变量给键缓冲区(或者说键缓存)分配指定大小的空间。
table_cache_size
设置这个变量不会立即生效,要等到下一个线程打开表的时候才会生效。当它生效的时候,
MySQL 会检查变量的值。如果值大于缓存中表的数量,线程就可以把新打开的表插人到缓存
中。如果值小于缓存中表的数量,MySQL 就会从缓存中删除掉没有使用的表。
query_cache_size
在服务器启动的时候,MySQL 会为查询缓存一次性分配变量所定义数量的内存。如果更新了
变量(即使是把值设置为当前值),MySQL 会立即删除掉所有缓存的查询,重新把缓存设置为
定义的大小,并且重新初始化缓存的内存。
mysql> show global status like 'aborted_clients';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| Aborted_clients | 926 |
+-----------------+-------+
1 row in set (0.00 sec)
如果这个变量随时间增加,那么就要确定是否优雅地关闭了连接。如果不是,那就要检查网
络性能,并且检查 max_allowed_packet 配置变量,超过了 max_allowed_packet 的查询会被
强制地中断。
mysql> show global status like 'aborted_connects';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| Aborted_connects | 25 |
+------------------+-------+
这个值应该接近于 0。不是的话,就可能是网络问题。有几个被中断的连接是正常的。例如,
当某些人试着从错误的主机连接、使用了错误的用户名和密码,或者定义了无效的数据库,
就会发生这样的情况。
mysql> show global status like 'binlog_cache_disk_use';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| Binlog_cache_disk_use | 0 |
+-----------------------+-------+
1 row in set (0.00 sec)
mysql> show global status like 'binlog_cache_use';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| Binlog_cache_use | 0 |
+------------------+-------+
1 row in set (0.00 sec)
如果 binlog_cache_disk_use 和 Binlog_cache_use 之间的比率很大,那么就应该增加
binlog_cache_size 的值。大部分事务最好都落在二进制日志缓存里面,但是偶尔有一个发
生在磁盘上也无妨。
mysql> show global status like 'bytes_received';
+----------------+--------------+
| Variable_name | Value |
+----------------+--------------+
| Bytes_received | 103816139247 |
+----------------+--------------+
1 row in set (0.00 sec)
mysql> show global status like 'bytes_sent';
+---------------+--------------+
| Variable_name | Value |
+---------------+--------------+
| Bytes_sent | 380244022132 |
+---------------+--------------+
1 row in set (0.00 sec)
这两个值可以帮助你考察问题是由发送服务器的数据过多引起的,还是从服务器读取的数据
太多引起的.
mysql> show global status like 'connections';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Connections | 2691254 |
+---------------+---------+
这个变量表示了连接意图的数量(不是当前连接的数量,它是 Threads_connected。如果它
的值快速增加,例如,每秒几百,那么就应该检查连接次或调整操作系统的网络堆栈.
mysql> show global status like 'created_tmp_tables';
+--------------------+----------+
| Variable_name | Value |
+--------------------+----------+
| Created_tmp_tables | 13555280 |
+--------------------+----------+
该值较高的唯一处理办法是优化查询。
mysql> show global status like 'created_tmp_disk_tables';
+-------------------------+---------+
| Variable_name | Value |
+-------------------------+---------+
| Created_tmp_disk_tables | 6362588 |
+-------------------------+---------+
如果这个值较高,有两件事情可能发生了错误:(1)查询在选择 BLOB 或 TEXT 列的时候创建了
临时表;(2)tmp_table_size 和 max_heap_table_size 可能不够大。
mysql> show global status like 'handler_read_rnd_next';
+-----------------------+------------+
| Variable_name | Value |
+-----------------------+------------+
| Handler_read_rnd_next | 2637397313 |
+-----------------------+------------+
Handler_read_rnd_next/Handler_read_rnd 显示了全表扫描的大致平均值。如果值较大,
那么就应该优化架构、索引和查询。
剩余18页未读,继续阅读
资源评论
小鸭文库
- 粉丝: 141
- 资源: 5901
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功