日常运维
一些通用操作
| 1 | -- 查看mysql版本 | 
mysql中的常用工具
| 1 | # 查找my.cnf的文件地址 | 
mybatis
| 1 | # mybatis批量修改 | 
查询建表语句
| 1 | show create table film | 
创建索引
SQL优化
- 查看各种SQL执行频率 - 1 - show status; - 两种方式定位执行效率比较低的SQL语句: - A. 慢查询日志: - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12- --查询默认慢查询 
 show variables like ”%long%”
 --设置慢查询时间
 set global long_query_time=2
 --启动满查询
 set global slow_query_log=’ON’;
 --查看满查询相关,是否开启、日志存储位置慢查询日志分析工具
 show variables like "%slow%";
 --slow记录最多的10个语句
 mysqldumpslow -s r -t 10 /slowquery.log
 --按照时间排序前10中含有"left join"的
 mysqldumpslow -s t -t 10 -g "left join" /slowquery.log- B. 当前mysql在进行的线程,包括线程的状态、是否锁表 - 1 - show processlist 
- 通过explain分析效率低SQL的执行计划 
| 1 | SHOW STATUS LIKE "%Handler_read%"; //查看索引使用情况 | 
- 两个简单实用的优化方法: - A. 定期分析表和检查表 - 分析表
 - 1 - analyze table store; - 检查表
 - B. 定期优化表 - 1 - optimize table store; 
- 常用的SQL优化 - 优化数据库对象: - SELECT * from combo_item PROCEDURE ANALYSE() //优化表的数据类型,最适合大表优化
- 使用中间表提高统计查询速度
- 逆规范化
- 通过拆分提高表的访问效率
 - 锁问题 
 MyISAM- 1 
 2
 3- show status like ‘table_locks_%’; 
 # Table_locks_waited 的值比较高的情况下,说明存在着较严重的表级锁争用情况- 获取Innodb 行锁争用情况 - 1 - show status like “innodb_row_lock_%%”;