-- 查看mysql当前有多少连接
show global status like 'Thread%';
/*
Threads_cached:缓存中的线程连接数
Threads_connected:当前打开的连接数
Threads_created:为处理连接创建的线程数
Threads_running:非睡眠状态的连接数,通常指并发连接数
*/
客户端没产生一个或者会话,在服务端就会创建一个线程来处理。反过来,如果要杀死会话,就是kill线程。
mysql会把长时间不活动(sleep)连接自动断开。
-- 查看mysql的超时时间,默认 28800秒,即 8小时
show global VARIABLES like 'wait_timeout';-- 非交互式超时时间,如 JDBC程序
show global VARIABLES like 'interactive_timeout';-- 交互式超时时间,如 数据库工具
-- 查看最大连接数,mysql5.7 默认是151个,可设置最大连接数为 100000
show VARIABLES like 'max_connections';
-- 查询mysql缓存是否开启,默认是关闭的
show VARIABLES like 'query_cache';
/*
为何默认缓存关闭?
1,要求sql语句一模一样,中间多一个空格或者字母大小写不同都被认为是不同的sql;
2,表里面任何一条数据变更都会导致这张表的所有缓存失效。
不适用于大量数据变更的场景,一般缓存交给第三方框架,如 MyBatis 或者 Redis这种来做
在5.8版本查询缓存就被移除掉了
*/
-- 查看查询开销
show status like 'Last_query_cost';
-- 执行计划工具 EXPLAIN
select * from db;
EXPLAIN select * from db where Db = 'sys';
-- 存储引擎
show VARIABLES like 'datadir';