-- 查看mysql 当前多少连接等
SHOW GLOBAL STATUS LIKE 'Thread%';
-- 非交互超时时间 如JDBC 默认时间:秒
SHOW GLOBAL VARIABLES like 'wait_timeout';
-- 交互式超时时间 如数据库工具
SHOW GLOBAL VARIABLES like 'interactive_timeout';
-- 最大连接数 5.7版本默认151个 最大可设置100000
show variables like 'max_connections';
-- 查询缓存开关等信息 mysql缓存默认是关闭的
show variables like 'query_cache%';
mysql缓存默认是关闭的,原因有二:
1.要求sql语句必须一模一样,字母大小写,中间多个空格什么的都会被认为不是同一个sql;
2.表里面任何一个数据发生变化,这张表的所有缓存都会失效,对于数据量大的情况下不适合;
缓存这一块,用ORM持久层框架(如mybatis默认开启一级缓存),或者独立的缓存(如redis)去实现;在mysql8.0版本中已经去掉了缓存
》》》解析器
如果查询一个不存在的表,是在执行层还还是在解析器???
在解析器里有个预处理器,它会检查生成的解析树,解决解析器无法解释的语义。比如检查表和列名是否存在,检查名字和别名是否有歧义,预处理后得到一个新的解析树
-- 查询最近的查询开销
show status like 'Last_query_cost';
-- 查询语法详细信息
EXPLAIN format=json select * from table