Sailing's blog Sailing's blog
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • JDK文档
  • Spring官网
  • MySQL官网
  • Maven
  • Kafka
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • Git命令
  • 正则表达式
  • Linux命令
  • MySQL命令
  • 分类
  • 标签
  • 归档
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

ZH

小马过河
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • JDK文档
  • Spring官网
  • MySQL官网
  • Maven
  • Kafka
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • Git命令
  • 正则表达式
  • Linux命令
  • MySQL命令
  • 分类
  • 标签
  • 归档
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Git命令清单
  • 正则表达式
  • Linux命令
  • MySQL命令
    • 常用语句
    • 锁相关(很少用)
    • 优化时用到:
    • 查看状态
    • 慢查询日志
    • 查看sql进程和杀死进程
  • 快捷键
zhangyifang
2024-07-15
目录

MySQL命令

# 常用语句

1、如果有主键或者唯一键冲突则不插入:insert ignore into

2、如果有主键或者唯一键冲突则更新,注意这个会影响自增的增量:INSERT INTO room_remarks(room_id,room_remarks) VALUE(1,"sdf") ON DUPLICATE KEY UPDATE room_remarks="234"

3、如果有就用新的替代,values如果不包含自增列,自增列的值会变化:REPLACE INTO room_remarks(room_id,room_remarks) VALUE(1,"sdf")

4、备份表:CREATE TABLE user_info SELECT * FROM user_info

5、复制表结构:CREATE TABLE user_v2 LIKE user

6、从查询语句中导入:INSERT INTO user_v2 SELECT * FROM user或者INSERT INTO user_v2(id,num) SELECT id,num FROM user

7、连表更新:UPDATE user a, room b SET a.num=a.num+1 WHERE a.room_id=b.id

8、连表删除:DELETE user FROM user,black WHERE user.id=black.id

# 锁相关(很少用)

1、共享锁: select id from tb_test where id = 1 lock in share mode;

2、排它锁: select id from tb_test where id = 1 for update

# 优化时用到:

1、强制使用某个索引: select * from table force index(idx_user) limit 2;

**2、禁止使用某个索引:**select * from table ignore index(idx_user) limit 2;

3、禁用缓存(在测试时去除缓存的影响): select SQL_NO_CACHE from table limit 2;

# 查看状态

1、查看字符集 SHOW VARIABLES LIKE 'character_set%';

2、查看排序规则 SHOW VARIABLES LIKE 'collation%';

# 慢查询日志

查询慢查询日志信息可以直接通过执行sql命令查看相关变量,常用的sql如下:

-- 查看慢查询配置
-- slow_query_log  慢查询日志是否开启
-- slow_query_log_file 的值是记录的慢查询日志到文件中
-- long_query_time 指定了慢查询的阈值
-- log_queries_not_using_indexes 是否记录所有没有利用索引的查询
SHOW VARIABLES LIKE '%quer%';

-- 查看慢查询是日志还是表的形式
SHOW VARIABLES LIKE 'log_output'

-- 查看慢查询的数量
1
2
3
4
5
6
7
8
9
10
11

mysqldumpslow的工具十分简单,我主要用到的是参数如下:

例子:mysqldumpslow -v -s t -t 10 mysql_slow.log.2018-11-20-0500

-t:限制输出的行数,我一般取前十条就够了 -s:根据什么来排序默认是平均查询时间at,我还经常用到c查询次数,因为查询次数很频繁但是时间不高也是有必要优化的,还有t查询时间,查看那个语句特别卡。 -v:输出详细信息

# 查看sql进程和杀死进程

--查看进程列表
SHOW PROCESSLIST;
--杀死某个进程
kill 183665
1
2
3
4
编辑 (opens new window)
Linux命令

← Linux命令

最近更新
01
Linux命令
07-08
02
网格布局中的动画
09-15
03
Git修改分支名
08-11
更多文章>
Theme by Vdoing | Copyright © 2019-2024 豫ICP备20005938号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式