mysql-线上常用运维sql

1.表备份

sql 复制代码
INSERT INTO table1 SELECT * FROM table2;

2.用一个表中的字段更新另一张表中的字段

sql 复制代码
UPDATE table2
JOIN table1 ON table2.id = table1.id
SET table2.column2 = table1.column1;

3.在MySQL中,查询一个表的列字段值是否包含另一个表的字段,你可以使用LIKE操作符

假设你有两个表:table1table2

table1 有列 column1column2

table2 有列 field1

你想找出所有在 table1 中,其 column1 的值包含 table2field1 值的记录。

你可以使用以下的SQL查询:

sql 复制代码
SELECT * 
FROM table1 
WHERE column1 LIKE CONCAT('%', (SELECT field1 FROM table2 WHERE ...), '%');

示例:

sql 复制代码
SELECT
	*
FROM
	sys_user u
	LEFT JOIN sys_dept d ON d.DEPT_NAME LIKE CONCAT( '%', u.DEPT_NAME, '%' );

4.锁表快速杀进程

sql 复制代码
SELECT concat('KILL ',id,';')  FROM information_schema.processlist p INNER JOIN  information_schema.INNODB_TRX x ON p.id=x.trx_mysql_thread_id WHERE db='ctcdm'; 

5.查询锁表的sql

sql 复制代码
SELECT concat('KILL ',id,';') FROM information_schema.processlist p INNER JOIN  information_schema.INNODB_TRX x ON p.id=x.trx_mysql_thread_id WHERE db='ctcdm'; 

6.当前正在使用的表以及锁定它们的进程

sql 复制代码
SHOW OPEN TABLES WHERE In_use > 0;

7.显示指定进程的详细信息,包括正在执行的SQL语句(INFO列)

sql 复制代码
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = 12345;

8.查询当前执行的事务

sql 复制代码
SELECT * FROM information_schema.INNODB_TRX

在MySQL中,`information_schema.INNODB_TRX` 是一个特殊的表,它提供了关于当前正在进行的InnoDB事务的信息。通过查询这个表,你可以了解哪些事务正在进行以及它们的状态。

以下是`information_schema.INNODB_TRX`表中的一些字段及其描述:

  1. **trx_id**: 事务的ID。

  2. **trx_mysql_thread_id**: 与该事务关联的MySQL线程ID。

  3. **trx_mysql_user**: 执行事务的MySQL用户。

  4. **trx_mysql_host**: 执行事务的MySQL主机。

  5. **trx_started**: 事务开始的时间。

  6. **trx_requested_lock_sid**: 事务尝试获取锁定的系统ID(如果存在)。

  7. **trx_weight**: 事务的权重。

  8. **trx_mysql_thread_id**: 与事务关联的MySQL线程ID。

  9. **trx_query**: 事务开始时执行的查询(如果有的话)。

  10. **trx_operation_state**: 事务的当前操作状态(例如:等待锁)。

  11. **trx_tables_in_use**: 指示事务中使用的表的数量。

  12. **trx_tables_idle**: 在事务中未使用的表的数量。

  13. **trx_isolation_level**: 事务的隔离级别。

  14. **trx_unique_checks**: 如果为真,则进行唯一性检查。

  15. **trx_foreign_key_checks**: 如果为真,则进行外键检查。

  16. **trx_last_foreign_key_error**: 上一个外键错误的消息(如果有的话)。

  17. **trx_adaptive_hash_latched**: 如果为真,则自适应哈希索引被锁定。

  18. **trx_adaptive_hash_timeout**: 自适应哈希索引超时值。

  19. **trx_is_read_only**: 如果为真,则事务是只读的。

  20. **trx_autocommit**: 如果为真,则事务是自动提交的。

  21. **trx_isolation_forbidden**: 如果为真,则由于隔离级别冲突,该事务不能运行。

  22. **trx_no_2pc**: 如果为真,则事务不能运行在两阶段提交模式下。

  23. **trx_recovered**: 如果为真,则事务被恢复系统标记为已完成。

  24. **trx_undo_space**: 用于存储撤销信息的空间量。

  25. **trx_coordinator**: 如果为真,则事务是协调者。

  26. **trx_coordinator_name**: 协调者线程的名称。

  27. **trx_last_commit_timestamp**: 上次提交的时间戳。

  28. **trx_outstanding_writes**: 未提交的事务中的写操作数量。

  29. **trx_outstanding_reads**: 未提交的事务中的读操作数量。

  30. **trx_last_write_file**: 上次写操作的文件的名称。

  31. **trx_last_write_line**: 上次写操作的行号。

  32. **trx_last_read_file**: 上次读操作的文件的名称。

  33. **trx_last_read_line**: 上次读操作的行号。

  34. **trx_first_undo_space**: 第一个撤销空间的ID。

  35. **trx_undo_rseg**: 撤销段的ID。

  36. **trx_state**: 事务的状态(例如:运行中、准备提交、已提交等)。

  37. **trx_undo_next**: 下一个撤销空间的ID。

  38. **trx_undo_prev**: 前一个撤销空间的ID。

  39. **trx__undo__rseg**: 与当前撤销空间关联的撤销段的ID。

  40. **trx__undo__undo__rseg__no**: 与当前撤销空间关联的撤销段的编号。

  41. **trx__undo__inserted__undo__log__memory**: 插入到撤销日志中的内存量。

  42. **trx__undo__recovered**: 如果为真,则撤销日志已恢复。

  43. **trx__undo__data`: 包含撤销数据的字节数。`

相关推荐
The_Ticker22 分钟前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
Elastic 中国社区官方博客28 分钟前
Elasticsearch 开放推理 API 增加了对 IBM watsonx.ai Slate 嵌入模型的支持
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
企鹅侠客33 分钟前
ETCD调优
数据库·etcd
Json_1817901448039 分钟前
电商拍立淘按图搜索API接口系列,文档说明参考
前端·数据库
煎饼小狗1 小时前
Redis五大基本类型——Zset有序集合命令详解(命令用法详解+思维导图详解)
数据库·redis·缓存
永乐春秋1 小时前
WEB-通用漏洞&SQL注入&CTF&二次&堆叠&DNS带外
数据库·sql
打鱼又晒网2 小时前
【MySQL】数据库精细化讲解:内置函数知识穿透与深度学习解析
数据库·mysql
大白要努力!2 小时前
android 使用SQLiteOpenHelper 如何优化数据库的性能
android·数据库·oracle
tatasix3 小时前
MySQL UPDATE语句执行链路解析
数据库·mysql
南城花随雪。3 小时前
硬盘(HDD)与固态硬盘(SSD)详细解读
数据库