文档章节

MySQL管理与优化(17):优化MySQL Server

ihaolin
 ihaolin
发布于 2014/09/05 08:02
字数 772
阅读 67
收藏 5

优化MySQL Server:

查看MySQL Server参数:

-- 查看变量
mysql> SHOW VARIABLES LIKE 'innodb_buffer%';
+-------------------------------------+----------------+
| Variable_name                       | Value          |
+-------------------------------------+----------------+
| innodb_buffer_pool_dump_at_shutdown | OFF            |
| innodb_buffer_pool_dump_now         | OFF            |
| innodb_buffer_pool_filename         | ib_buffer_pool |
| innodb_buffer_pool_instances        | 8              |
| innodb_buffer_pool_load_abort       | OFF            |
| innodb_buffer_pool_load_at_startup  | OFF            |
| innodb_buffer_pool_load_now         | OFF            |
| innodb_buffer_pool_size             | 134217728      |
+-------------------------------------+----------------+
8 rows in set (0.00 sec)

-- 查看状态
mysql> SHOW STATUS LIKE 'Innodb_buffer%';
+---------------------------------------+-------------+
| Variable_name                         | Value       |
+---------------------------------------+-------------+
| Innodb_buffer_pool_dump_status        | not started |
| Innodb_buffer_pool_load_status        | not started |
| Innodb_buffer_pool_pages_data         | 973         |
| Innodb_buffer_pool_bytes_data         | 15941632    |
| Innodb_buffer_pool_pages_dirty        | 0           |
| Innodb_buffer_pool_bytes_dirty        | 0           |
| Innodb_buffer_pool_pages_flushed      | 3131        |
| Innodb_buffer_pool_pages_free         | 7216        |
| Innodb_buffer_pool_pages_misc         | 2           |
| Innodb_buffer_pool_pages_total        | 8191        |
| Innodb_buffer_pool_read_ahead_rnd     | 0           |
| Innodb_buffer_pool_read_ahead         | 0           |
| Innodb_buffer_pool_read_ahead_evicted | 0           |
| Innodb_buffer_pool_read_requests      | 52173       |
| Innodb_buffer_pool_reads              | 600         |
| Innodb_buffer_pool_wait_free          | 0           |
| Innodb_buffer_pool_write_requests     | 17154       |
+---------------------------------------+-------------+

-- 你也可以直接使用mysqladmin来查看
mysqladmin -u<user> -p<passwod>  VARIABLES | grep innodb_buffer;
查看帮助文档:
-- 所有参数
mysqld --verbose --help|more 

-- 某个参数
mysqld --verbose --help| grep character-set-server
2014-09-03 22:38:36 5595 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive
2014-09-03 22:38:36 5595 [Note] Plugin 'FEDERATED' is disabled.
  -C, --character-set-server=name
character-set-server                                       utf8

影响MySQL性能的重要参数:

key_buffer_size的设置:

mysqld --verbose --help|grep key-buffer-size
2014-09-03 22:44:44 5631 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive
2014-09-03 22:44:44 5631 [Note] Plugin 'FEDERATED' is disabled.
  --key-buffer-size=# The size of the buffer used for index blocks for MyISAM
key-buffer-size                                            8388608
  • 即设置索引块的缓存大小,我们可以自己设置索引块:
--添加索引块mycache
SET GLOBAL mycache.key_buffer_size=10240;
--删除索引块mycache
SET GLOBAL mycache.key_buffer_size=0;
  • 但上面的设置在mysql重启后会失效,我们可以配置my.cnf来初始化缓存块:
key_buffer_size=4G
mycache.key_buffer_size=2G
init_file=/path/to/mysql_init.sql

-- mysql_init.sql可以为
CACHE INDEX db1.table1, db1.table2, db2.table3 IN mycache;

table_cache的设置:

mysql> show status like 'Open%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Open_files               | 18    |
| Open_streams             | 0     |
| Open_table_definitions   | 153   |
| Open_tables              | 146   |
| Opened_files             | 7925  |
| Opened_table_definitions | 0     |
| Opened_tables            | 0     |
+--------------------------+-------+

innodb_buffer_pool_size:

  • innodb存储引擎使用的表数据和索引数据的最大内存缓存大小,默认128M,该值越大,磁盘I/O越小。
  • 在专用服务器上,该值可设置为物理内存的80%,但这需要考虑系统中物理内存调度的问题。

innodb_flush_log_at_trx_commit:

  • 控制缓冲区的数据写入到日志文件及日志文件数据刷新到磁盘的操作时机。
  • 该参数的值可为0,1,2:

       0:日志缓冲每秒一次地被写到日志文件,并且对日志文件做向磁盘刷新的操作,但在一个事务提交后不做任何事情。

       1():每个事务提交时,日志缓冲被写到日志文件,并且执行日志文件到磁盘刷新的操作。

       2:每个事务提交时,日志缓冲被写到日志文件,但不执行日志文件到磁盘刷新的操作,对日志文件每秒向磁盘做一次刷新操作。

innodb_additional_mem_pool_size:

  • 用于存储数据库结构和内部数据结构的内存池大小,默认为8M,该参数在5.6中被废弃,在5.7中移除。

innodb_lock_wait_timeout:

  • 等待锁的超时时间,默认为50秒。

innodb_support_xa:

  • 是否支持分布式事务,默认支持。

innodb_log_buffer_size:

  • 日志缓存大小,默认为8M。

innodb_log_file_size:

  • 日志文件大小,每个日志组中的日志文件大小,默认值为48M。

具体详情可参考:

http://dev.mysql.com/doc/refman/5.7/en/mysqld-server.html

不吝指正。

© 著作权归作者所有

ihaolin
粉丝 260
博文 164
码字总数 106524
作品 4
朝阳
高级程序员
私信 提问
mysql架构组成

配置文件 window中:my.ini文件 linux中: /etc/my.cnf 物理文件组成 日记文件-->日记文件的选项配置文件(my.ini/my.cnf) * 错误日记 log-error 记录的主要是较为严重的警告和错误消息,每次启...

云淡V
2016/09/07
91
0
mysql单独服务器,应用远程连接,局域网速度如何

部署一些站点,想将数据库独立到一台服务器上。 现在webserver 和 mysql server 两台服务器,在同一个机房,一个局域网内。 从webserver 向 mysqlserver 查询写入速度怎么样? 除了开放mysql...

吾爱
2013/05/15
346
3
轻松优化MySQL-之数据库切分3

数据切分与整合可能存在的问题 在实施数据切分方案之前,有些可能存在的问题我们还是须要做一些分析的。 一般来说,我们可能遇到的问题主要会有以下几点: 引入分布式事务的问题。 跨节点Joi...

山东大葱哥
03/30
0
0
MySql5.6安装过程中遇到的问题

新建my.ini或my.inf文件,使其替换安装目录下的my-default.ini文件修改参数如下: D:MySqlServer 替换成自己的 安装目录 [mysqld] # 设置mysql的安装目录 basedir=D:MySqlServer # 设置mysql...

不会飞的菜鸟
2015/03/20
0
0
mysql主从以及读写分离(科普)

在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需求的。无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。因此,通过主从复制的方...

hfisop
2018/05/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C 语言 二级指针的使用

#include <stdio.h>#include <stdlib.h>typedef struct node Node;struct node {int data;struct node* next;struct node* prev;};Node head;Node* insert(Node......

小张525
17分钟前
2
0
【大数据技术】——Hadoop(1)

什么是大数据 基本概念 《数据处理》 在互联网技术发展到现今阶段,大量日常、工作等事务产生的数据都已经信息化,人类产生的数据量相比以前有了爆炸式的增长,以前的传统的数据处理技术已经...

须臾之余
31分钟前
6
0
比特币从地址逆向计算私钥

区块链 区块链简介 说到比特币,就不得不提区块链。那什么是区块链呢? 区块链本质是一个数据集,只不过数据的组织采用了比较特殊的方式,就是把数据拆分为一块一块的小数据集。 为什么要进行...

trayvon
46分钟前
1
0
TypeScript……真香

写前端或者用 node 写命令行小工具一直采用的 es6 的语法,对于 TypeScript 则是秉持敬而远之的态度,毕竟团队中多推广一门语言所需要花费的精力都是让人望而却步的。所以对于 JavaScript 的...

郁也风
51分钟前
3
0
shell基本案例

1、自定义rm linux系统的rm命令太危险,一不小心就会删除掉系统文件。 写一个shell脚本来替换系统的rm命令,要求当删除一个文件或者目录时,都要做一个备份,然后再删除。下面分两种情况,做...

寰宇01
58分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部