SQL优化
锁表
1.查询是否锁表
show OPEN TABLES where In_use > 0;
2.查看所有进程MySQL
show processlist;
3.查询到相对应的进程——然后 kill id杀掉指定mysql连接的进程号
kill $pid
4.查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
5.查看等待锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
表结构信息导出
SELECT
COLUMN_NAME 字段名称,
COLUMN_TYPE 数据类型,
CHARACTER_MAXIMUM_LENGTH 字段长度,
(
CASE
WHEN column_key = 'PRI' THEN
'√'
ELSE
''
END
) 主键,
COLUMN_COMMENT 字段描述
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
table_schema = '查询的数据库名称'
AND
table_name = '表名'
执行效果

根据表名筛选表名单
方法一:
SHOW TABLES
FROM
数据库名称
WHERE
`TABLES_in_want_dev` NOT LIKE 'act_%'(不等于act_开头的表)
AND `TABLES_in_want_dev` NOT LIKE 'api_%'
执行效果:

方法二:
SELECT
a.table_name 表名,
a.table_comment 表说明(表中文名称)
FROM
information_schema. TABLES a
WHERE
a.table_schema = '数据库名称'
AND a.TABLE_NAME NOT LIKE 'act_%'
ORDER BY
a.table_name
执行效果:

本文概述了如何通过SQL优化技巧减少MySQL锁定表的问题,包括查询锁定状态、进程管理、事务分析等。同时介绍了如何导出表结构信息,并展示了筛选表名单的两种方法。这些实用技巧有助于提高数据库操作效率和维护准确性。

1647

被折叠的 条评论
为什么被折叠?



