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
执行效果: