-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmysql优化.txt
97 lines (67 loc) · 3.28 KB
/
mysql优化.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
1,避免MySql的外部锁定
skip-external-locking
2,禁止MySql对外部连接进行DNS解析
skip-name-resolve
3, back_log参数的值指出在MySql暂时停止响应新请求之前, 短时间内的多少个请求可以被存在堆栈中
对于Linux系统而言, 推荐设置为小于512的整数
key_buffer_size=384M
4, table_cache = 614K
table_cache是指表高速缓存的大小
可以通过查看数据库运行峰值时间的状态值Open_tables和Opened_tables, 用以判断是否需要增加table_cache
的值, 即如果open_tables接近table_cache的时候,并且Opened_tables这个值在逐步增加了,那就要考虑增加这
值得大小.
5, sort_buffer_size = 6M
sort_buffer_size指的是查询排序时所能使用的缓冲区的大小
6, read_buffer_size = 4M
read_buffer_size指的是读查询操作所能使用的缓冲区大小,每连接独享
7, join_buffer_size=8M
join_buffer_size指的是联合查询操作所能使用的缓冲区大小,每连接独享
8, thread_cache_size=64
用于设置Thread Cache池中可以缓存的连接线程最大数量, 可设置为0~16384
9, query_cache_size=64M
query_cache_size指定MySql查询缓冲区的大小
10, max_connections=768
max_connections用于指定MySql允许的最大连接进程数
11, max_connect_errors=1000
max_connect_errors用于设置每台主机的连接请求异常中断的最大次数,当超过该次数, MySql服务器将禁止host的
连接请求, 直到MySql服务器重启或通过flush hosts命令清空此host的相关信息, 默认为10
12, thread_concurrency=8
thread_concurrency的取值为服务器逻辑CPU数量的两倍
13, table_cache=1024
物理内存越大, 设置就越大. 默认为2402, 调到512~1024最佳
14, innodb_additional_mem_pool_size=4M
默认为2MB
15, innodb_log_buffer_size=2M
默认为1MB
16, innodb_thread_concurrency=8
服务器CPU有几个就设置几个, 建议用默认设置, 一般为8
17, read_rnd_buffer_size=16M
read_rnd_buffer_size设置进行随机读的时候所使用的缓冲区.此参数和read_buffer_size所设置的Buffer相反,
一个是顺序读的时候使用, 一个是随机读的时候使用.
每个线程都可以产生两种Buffer中的任何一种. read_rnf_buffer_size的默认值为256KB,最大值为4G
-----------------------------------------------------------------
查询最大连接数
show variables like 'max_connections';
查询服务器响应的最大连接数
show global status like 'Max_used_connections';
open_tables表示打开表的数量, opened_tables表示打开过表的数量
show global status like 'open%tables%';
如果opened_tables数量过大, 说明配置中table_open_cache的值可能太小, 查询一下服务器
table_open_cache值
show variables like 'table_open_cache';
threads_created表示创建过的线程数
show global status like 'Thread%';
如果发现threads_created的值过大, 表明MySql服务器一直在创建线程, 可以适当增大配置文件中thread_cache_size的值,
查询服务器thread_cache_size配置
show variables like 'thread_cache_size';
query_cache_size用于设置MySQL的查询缓存(query cache)大小, query_cache_type用于设置使用查询缓存的类型
show global status like 'qcache%';
查询关于query_cache的配置
show variables like 'query_cache%';
数据进行排序时所使用的buffer,MySql在内存中排序,使用内存的大小由系统变量sort_buffer_size来决定
show global status like 'sort%';
文件打开数 open_files 大于 open_files_limit值时,MySql数据库就会产生卡住的现象
show global status like 'open_files';
show variables like 'open_files_limit';
InnoDB不仅仅缓存索引,同时还会缓存实际的数据.Innodb_buffer_pool_size参数用来设置InnoDB最主要的buffer
的大小,也就是缓存用户表及索引数据的最主要缓存空间,对InnoDB整体性能影响也最大