目录
mysqldump的使用(慢查询分析)
1.开启慢查询日志
- SHOW VARIABLES LIKE 'slow_query_log';
-
- #开启慢查询日志
- SET GLOBAL slow_query_log=1;
-
- #慢查询的阈值
- SHOW VARIABLES LIKE 'long_query_time';
- SET long_query_time=0.1
2.先找到慢查询日志
cd /var/lib/mysql
找到common.sock文件里面就是慢查询日志
3.使用日志分析工具
mysqldumpsslw --help
像我们一般分析sql优化就可以使用该日志分析
比如:查找最慢的三条
mysqldumpslow -s c -t 3 -a
3. 查到对应的sql之后再去集中处理,可以去sql控制台中explain该sql,然后进行sql索引优化
mysqldumpslow参数分析
工作常用参考:
- 得到返回记录集最多的10个SQL
- mysqldumpslow -s r -t 10 /var/lib/mysql/atguigu-slow.log
-
- 得到访问次数最多的10个SQL
- mysqldumpslow -s c -t 10 /var/lib/mysql/atguigu-slow.log
-
- 得到按照时间排序的前10条里面含有左连接的查询语句
- mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/atguigu-slow.log
-
- 另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现爆屏情况
- mysqldumpslow -s r -t 10 /var/lib/mysql/atguigu-slow.log | more
杀死用户
- #查看用户进程
- SHOW PROCESSLIST
-
- KILL 3
视图
只负责展示,不需要发布程序
1.创建视图
- CREATE VIEW view_name
- AS
- SELECT column_name(s)
- FROM table_name
- WHERE condition
2.创建完视图后,我们以后的查询直接在视图中查询即可(本身这个视图里面封装的就是我们的sql)
查看视图
- DELIMITER $$
-
- ALTER ALGORITHM=UNDEFINED DEFINER=`root`@`%` SQL SECURITY DEFINER VIEW `view_test` AS
- SELECT
- `t_emp`.`id` AS `id`,
- `t_emp`.`name` AS `name`,
- `t_emp`.`age` AS `age`,
- `t_emp`.`deptld` AS `deptld`,
- `t_emp`.`empno` AS `empno`
- FROM `t_emp`$$
-
- DELIMITER ;
根据视图进行查询得到数据
SELECT * FROM view_test