二.解决

1.首先从自身sql入手,把sql放入navicat执行一次,看看需要多久,sql军规是否遵守,*,in等是否出现

2.最大连接数是否不满足当前连接数,考虑扩大?

3.索引优化,常用字段做索引,而且txt等数据类型不要做索引

4.分库分表,有的库表专门做查询

5.数据库开启缓存

6.服务器硬件升级

分分钟解决MySQL查询速度慢与性能差:​​https://www.jianshu.com/p/6641cfeb231c​

 

开启慢查询

show engines;

查看慢查询时间

show variables like 'slow%';

查看设置多久是慢查询

show variables like 'long%';

修改慢查询时间

set long_query_time=1;

打开慢查询记录日志

set global slow_query_log='ON';

连接数是否够

查看哪些线程正在运行

show full processlist

查看最大连接数

show variables like '%max_connections%';

当前连接数

show status like 'Threads_connected%';

【mySQL】mySQL优化笔记_mysql

 

查看线程数设置合理否

 

如果我们在MySQL服务器配置文件中设置了thread_cache_size,当客户端断开之后,服务器处理此客户的线程将会缓存起来以响应下一个客户而不是销毁(前提是缓存数未达上限)。

Threads_created表示创建过的线程数,如果发现Threads_created值过大的话, 表明MySQL服务器一直在创建线程,这也是比较耗资源,可以适当增加配置文件中thread_cache_size值,查询服务器

thread_cache_size配置:

1. mysql> show variables like 'thread_cache_size';

2. +-------------------+-------+

3. | Variable_name | Value |

4. +-------------------+-------+

5. | thread_cache_size | 64 |

6. +-------------------+-------+

Threads_created表示创建过的线程数,通过查看Threads_created就可以查看MySQL服务器的进程状态。

1. mysql> show global status like 'Thread%';

2. +-------------------+-------+

3. | Variable_name | Value |

4. +-------------------+-------+

5. | Threads_cached | 46 |

6. | Threads_connected | 2 |

7. | Threads_created | 570 |

8. | Threads_running | 1 |

9. +-------------------+-------+

示例中的服务器还是挺健康的。

 

1.show status

   Threads_connected  当前的连接数

   Connections  试图连接到(不管是否成功)​​MySQL​​服务器的连接数。

   Max_used_connections  服务器启动后已经同时使用的连接的最大数量。