Mysql-常用Mysql语句
0.背景
记录下常用的Mysql语句,持续更新,方便以后复制。
1.实例
-- --------------------- 普通查询相关 ------------------------------
-- 查询数据库版本
SELECT version();
-- 查询表状态
SHOW TABLE STATUS LIKE 'mq_trans';
-- 查看建表语句
show create table var1;
-- 查看表中的字段信息
show full columns from kong_log;
-- 查看那些表里有batch_id这个字段
select table_schema, table_name from information_schema.columns where column_name = 'var1';
-- 查看哪些表最近被修改了
SELECT TABLE_SCHEMA, TABLE_NAME, UPDATE_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA NOT IN ('information_schema', 'mysql')
ORDER BY UPDATE_TIME DESC;
-- 清空表数据
-- START TRANSACTION;
-- TRUNCATE TABLE table_name;
-- COMMIT;
-- ROLLBACK;
-- 重置递增字段值到0
# ALTER TABLE mq_trans AUTO_INCREMENT=0;
-- 查看库中各个表的数据量等信息
SELECT
TABLE_CATALOG AS '目录',
TABLE_SCHEMA AS '数据库',
TABLE_COMMENT AS '表注释',
TABLE_NAME AS '表名',
TABLE_TYPE AS '表类型',
TABLE_ROWS AS '记录数',
CONCAT( ROUND( DATA_LENGTH / ( 1024 * 1024 ), 2 ), 'M' ) AS '数据大小',
TABLE_COLLATION AS '字符集与排序规则',
CREATE_TIME AS '创建时间',
UPDATE_TIME AS '更新时间',
AUTO_INCREMENT AS '自增长值',
ENGINE AS '存储引擎',
VERSION AS '版本号',
ROW_FORMAT AS '行格式',
CONCAT( ROUND( AVG_ROW_LENGTH / ( 1024 ), 2 ), 'K' ) AS '平均行大小',
CONCAT( ROUND( MAX_DATA_LENGTH / ( 1024 ), 2 ), 'K' ) AS '最大数据大小',
CONCAT( ROUND( INDEX_LENGTH / ( 1024 * 1024 ), 2 ), 'M' ) AS '索引大小',
CONCAT( ROUND( DATA_FREE / ( 1024 * 1024 ), 2 ), 'M' ) AS '空闲空间',
CHECK_TIME AS '检查时间',
CHECKSUM AS '校验和',
CREATE_OPTIONS AS '创建选项'
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'svcscs_0';
-- ----------- 日期相关
-- 将时间戳格式化
SELECT DATE_FORMAT(FROM_UNIXTIME(1683854650), '%Y/%m/%d %H:%i:%s');
-- 查询三个月前的今天
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y/%m/%d') AS three_months_ago;
-- --------------------- 性能分析相关 ------------------------------
-- ----------- 索引
-- 执行计划
EXPLAIN
;
-- 查看索引信息
SHOW INDEX FROM kong_log;
-- 增加普通索引
ALTER TABLE `kong_log` ADD INDEX idx_gmt_create (gmt_create);
-- 删除索引
DROP INDEX index_name ON table_name;
-- ----------- 慢查询
-- 是否展示慢查询日志
show variables like 'slow_query_log';
set global slow_query_log = 1;
-- 是否开启索引日志
show variables like 'log_queries_not_using_indexes';
set global log_queries_not_using_indexes=1;
-- 超过多久记录到慢查询日志中
show variables like 'long_query_time';
set global long_query_time = 10;
-- 慢查询日志位置
SHOW VARIABLES LIKE 'slow_query_log_file';
2.使用
额,可以像我这样新建一个通用查询保存好,想用了直接运行就行。