https://blog.csdn.net/achiberx/article/details/71514862?utm_source=blogkpcl11mysql
1. MySQL Connections
数据库链接数分为Max Connections, Max Used Connections 和 Connections
即:最大链接数, 最近期间使用的最大链接数 和 当前实时链接数!
在使用MySQL数据库的时候,常常会遇到这么一个问题,就是“Can not connect to MySQL server. Too many connections”-mysql 1040错误,这是由于访问MySQL且还未释放的链接数目已经达到MySQL的上限。一般,msql的最大连数默认是151(ubuntu), 100(windows)。
mysql>mysql -u user -p password(命令行登陆MySQL)
mysql>show variables like 'max_connections';(查能够看当前的最大链接数)
msyql>set global max_connections=1000;(设置最大链接数为1000,能够再次查看是否设置成功)
mysql>exit(推出)
1
2
3
4
这种方式有个问题,就是设置的最大链接数只在mysql当前服务进程有效,一旦mysql重启,又会恢复到初始状态。由于mysql启动后的初始化工做是从其配置文件中读取数据的,而这种方式没有对其配置文件作更改。
问题:MySQL的最大链接数设置为多少比较合适?这个值是否是越大越好?
这个参数的大小要综合不少因素来考虑,好比使用的平台所支持的线程库数量(windows只能支持到2048)、服务器的配置(特别是内存大小)、每一个链接占用资源(内存和负载)的多少、系统须要的响应时间等。能够在global或session范围内修改这个参数。链接数的增长会带来不少连锁反应,须要在实际中避免由此引起的负面影响。
详细参考:MySQL最大链接数设置
ubuntu设置mysql的最大链接数:
cd /etc/mysql/mysql.conf.d 修改mysqld.cnf文件,在[mysqld]中添加或修改
cd /etc/mysql/mysql.conf.d
vi mysqld.cnf
max_connections=99
1
2
3
而后从新启动mysql
[root@localhost ~]# service mysql restart //重启mysql
查看当前系统下MySQL设置的最大链接数
[root@localhost ~]# /usr/bin/mysqladmin -u root -p variables | grep max_connections
| max_connections | 99
1
2
2. MySQL Active Threads
Threads Connected , Thread Running 即链接的线程数和运行的线程数。
能够用多线程去测试!
MySQL Questions
4. MySQL Thread Cache
Thread Cache Size
Thread Cached
Thread Ctreated
MySQL服务器的线程数查看方法:
mysql> show global status like 'Thread%';
1
Variable_name Values meaning
Threads_cached 57 The number of threads in the thread cache
Threads_connected 1268 The number of currently open connections.
Threads_created 31715 The number of threads created to handle connections.
Threads_running 1 The number of threads that are not sleeping.
thread_cache_size的意义:每创建一个链接,都须要一个线程来与之匹配,此参数用来缓存空闲的线程,以致不被销毁,若是线程缓存中有空闲线程,这时候若是创建新链接,MYSQL就会很快的响应链接请求。
mysql创建链接很是消耗资源,因此就有了thread_cache,当已有链接再也不使用以后,mysql server不是直接断开链接,而是将已有链接转入到thread_cache中,以便下次在有create thread的需求时,能够在cache中复用,提升性能,下降资源消耗。
threads_cached :表明当前此时此刻线程缓存中有多少空闲线程。
Threads_connected :表明当前已创建链接的数量,由于一个链接就须要一个线程,因此也能够当作当前被使用的线程数。
Threads_created :表明从最近一次服务启动,已建立线程的数量。
Threads_running :表明当前激活的(非睡眠状态)线程数。并非表明正在使用的线程数,有时候链接已创建,可是链接处于sleep状态,这里相对应的线程也是sleep状态。
四者之间的关系:
running和其余三个状态关系不大,但确定不会超过thread_connected
(new_con-old_con)=create+(old_cache-new_cache)
从上面公式能够看出,若是create等于0,那么thread_connected减小的和thread_cached增长的相等,thread_connected增长的和thread_cached减小的相等。(其实这也就是thread_cached存在的意义,资源能够复用)
咱们来看眼影响thread_cached的参数thread_cache_size:
How many threads the server should cache for reuse. When a client disconnects, the client’s threads are put in the cache if there are fewer than thread_cache_size threads there. Requests for threads are satisfied by reusing threads taken from the cache if possible, and only when the cache is empty is a new thread created. This variable can be increased to improve performance if you have a lot of new connections. Normally, this does not provide a notable performance improvement if you have a good thread implementation. However, if your server sees hundreds of connections per second you should normally set thread_cache_size high enough so that most new connections use cached threads. By examining the difference between the Connections and Threads_created status variables, you can see how efficient the thread cache is. For details, see Section 5.1.6, “Server Status Variables”.
参考:MySQL之thread cache
ubuntu修改thread_cache_size
cd /etc/mysql/mysql.conf.d
sudo vi mysqld.cnf
thread_cache_size = 48 //修改成48
1
2
3
MySQL Temporary Objects
Create Tmp Tables
Create Tmp Disk Tables
Create Tmp Files
MySQL Select Types
Select Scan:经过对第一个数据表进行全表扫描而完成的多数据表联接操做的次数.
Select Range Check:该变量记录了在联接时,对每一行数据从新检查索引的查询计划的数量,它的开销很大.若是该值较高或正在增长,说明一些查询没有找到好索引.
Select Range:利用第一个数据表上的某个区间而完成的多数据表联接操做的次数.
Select Full Range Join:利用一个辅助性的参照表(reference table)上的区间搜索
(range search)操做而完成的多数据表联接操做的次数.该值表示使用了范围查询联接表的次数.
Select Full Join:没有使用索引而完成的多表联接操做的次数.这种状况是性能杀手,最好去优化sql.
MySQL Sorts
Sort Scan:利用一次全表扫做而完成的排序操做的次数
Sort Merge Passes:查询致使了文件排序的次数.能够优化sql或者适当增长sort_buffer_size变量
Sort Range:利用一个区间进行的排序操做的次数
Sort Rows:对多少行排序
MySQL Slow Queries
Slow Queries:慢查询的次数(执行时间超过long_query_time值) 参考连接
MySQL Aborted Connections
Aborted Connects (attempts)
Aborted Clients (timeout)
MySQL Table Locks
Table Locks Immediate:无需等待就可以马上获得知足的数据表锁定请求的个数
Table Locks Waited:显示了有多少表被锁住了而且致使服务器级的锁等待(存储引擎级的锁,如InnoDB行级锁,不会使该变量增长).若是这个值比较高或者正在增长,那么代表存在严重的并发瓶颈.
MySQL Network Traffic
OutBound
Inbound
MySQL Internal Memory Overview
System Memory :操做系统总内存
Query Cache Size :mysql配置文件设置的大小
Key Buffer Size :mysql配置文件设置大小。
InnoDB Log Buffer Size
InnoDB Buffer Pool Data
Top Command Counters
show session status like 'com_delete';
show session status like 'com_insert';
show session status like 'com_update';
show session status like 'com_select';
1
2
3
4
com_insert、com_delete,com_update分别是查询本次会话中“增删改” 了多少次.
com_select的一种解释为com_select 变量记录的是无缓存的查询次数+错误查询+权限检查查询。若是select有缓存,数值不增长,若是命中缓存,缓存命中的次数加1,也就是Qcache_hits变量的值加1.
MySQL Handlers
read_rnd_next:读取下一个数据行的请求的个数.若是这个数字很高,就说明有不少语句须要经过全表扫描才能完成或有不少查询没有使用适当的索引
write:向数据表里插入一个数据行的请求的个数
external_lock
read_key:根据一个索引值而读取一个数据行的请求的个数
update:对数据表里的一个数据行进行修改的请求的个数
read_rnd:根据某个数据行的位置而读取该数据行的请求的个数
read_prev:按索引逆序读取前一个数据行的请求的个数
read_next:按索引顺序读取下一个数据行的请求的个数
read_last
read_first:读取索引中第一个索引项的请求的个数
mrr_init
discover
delete:从数据表删除一个数据行的请求的个数
MySQL Transaction Handlers
commit :提交一个事务的请求的个数
prepare
rollback :回滚一个事务的请求的个数
savepoint :建立一个事务保存点的请求个数
savepoint_rollback :回滚到一个事务保存点的请求的个数
Process States
Top Process States Hoursly
MySQL Query Cache Memory
Query Cache Size
Free Memory
MySQL Query Cache Activity
Not Cached
Queries in Cache
Prunes
Inserts
Hits
MySQL File Openings
Openings
MySQL Open Files
Open Files 打开的文件数
Open Files Limits 文件的上限
InnoDB Open File InnoDB打开的文件数
MySQL Table Open Status
Hits
Misses
Opennings
Misses due to Overflows
Table Open Cache Hit Ratio
MySQL Open Tables
Table Open Cache
Open Tables
MySQL Table Definition Cache
Table Definitions Cache Size
Open Table Definitions
Opened Table Definitions
参考:MySQL监控模板说明
---------------------
做者:acceptedwwh
来源:CSDN
原文:https://blog.csdn.net/achiberx/article/details/71514862
版权声明:本文为博主原创文章,转载请附上博文连接!sql