MySQL常用命令

本文介绍了MySQL中的几个常用命令,包括统计表数据量、计算数据库大小、SQL语句耗时分析、创建存储过程以及创建定时任务来自动更新效率得分视图。

MySQL常用命令

一、统计表数据量

SELECT
	CONCAT( table_schema, '.', table_name ) AS 'Table Name',
	table_rows AS 'Number of Rows',
	CONCAT( ROUND( data_length /( 1024 * 1024 * 1024 ), 4 ), 'G' ) AS 'Data Size',
	CONCAT( ROUND( index_length /( 1024 * 1024 * 1024 ), 4 ), 'G' ) AS 'Index Size',
	CONCAT( ROUND(( data_length + index_length )/( 1024 ), 4 ), 'KB' ) AS 'Total' 
FROM
	information_schema.TABLES 
WHERE
	table_schema LIKE 'db_name' and table_name = 'table_name';

统计数据库大小

	SELECT 
table_schema as '数据库',
sum(table_rows) as '记录数',
sum(truncate(data_length/1024/1024/1024, 2)) as '数据容量(GB)',
sum(truncate(index_length/1024/1024/1024, 2)) as '索引容量(GB)',
sum(truncate(DATA_FREE/1024/1024/1024, 2)) as '碎片占用(GB)'
from information_schema.tables
group by table_schema
order by sum(data_length) desc, sum(index_length) desc;

sql语句具体耗时:

SHOW PROFILES;

show profile cpu,block io for query 92;
#创建存储过程
drop procedure if exists efficiency_object_score_quarter_create_view;
CREATE PROCEDURE efficiency_object_score_quarter_create_view()
		BEGIN
		DROP VIEW IF EXISTS efficiency_object_score_quarter_view;
		#动态变量
		SET @table_name= (SELECT CONCAT('efficiency_object_score_quarter_',MAX(`quarter`))  FROM efficiency_object_score_stat_record);
		set @execSql=CONCAT("CREATE VIEW efficiency_object_score_quarter_view AS  SELECT * FROM ",@table_name) ;
		SELECT @execSql;
		PREPARE pr1 FROM @execSql;
		EXECUTE  pr1; # 最终执行语句
		DEALLOCATE PREPARE pr1 ; # 释放资源
	END;

#创建定时任务
drop event efficiency_object_score_quarter_create_view_event;
	
CREATE EVENT IF NOT EXISTS efficiency_object_score_quarter_create_view_event
ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)
#ON SCHEDULE EVERY 1 MINUTE
ON COMPLETION PRESERVE
COMMENT '定时重建效能得分视图'
DO call efficiency_object_score_quarter_create_view;
以下是一些 MySQL 常用命令的分类介绍: ### 数据库连接和管理 - 连接 MySQL 服务器:`mysql -h host -u username -p`,其中 `host` 是服务器地址,`username` 是用户名,输入该命令后会提示输入密码 [^1]。 ### 数据库操作命令 - 创建数据库:`CREATE DATABASE database_name;` - 删除数据库:`DROP DATABASE database_name;` - 使用数据库:`USE database_name;` ### 数据表操作命令 - 创建表: ```sql CREATE TABLE table_name ( column1 datatype, column2 datatype, ... ); ``` - 删除表:`DROP TABLE table_name;` - 修改表结构,例如添加列:`ALTER TABLE table_name ADD column_name datatype;` ### 数据查询命令 - 基本查询: ```sql SELECT column1, column2, ... FROM table_name WHERE condition; ``` - 分组查询: ```sql SELECT column1, COUNT(*) FROM table_name GROUP BY column1 HAVING condition; ``` - 排序查询: ```sql SELECT column1, column2 FROM table_name ORDER BY column1 ASC|DESC; ``` - 分页查询:`SELECT * FROM table_name LIMIT offset, count;` [^2] ### 数据修改命令 - 插入数据:`INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);` [^3] - 更新数据: ```sql UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition; ``` - 删除数据: ```sql DELETE FROM table_name WHERE condition; ``` ### 索引管理命令 - 创建索引:`CREATE INDEX index_name ON table_name (column1, column2, ...);` - 删除索引:`DROP INDEX index_name ON table_name;` ### 用户权限管理 - 创建用户:`CREATE USER 'username'@'host' IDENTIFIED BY 'password';` - 授予权限:`GRANT privilege_type ON database_name.table_name TO 'username'@'host';` - 撤销权限:`REVOKE privilege_type ON database_name.table_name FROM 'username'@'host';` ### 备份与恢复 - 备份数据库:`mysqldump -u username -p database_name > backup_file.sql` - 恢复数据库:`mysql -u username -p database_name < backup_file.sql` ### 性能优化命令 - 分析表:`ANALYZE TABLE table_name;` - 优化表:`OPTIMIZE TABLE table_name;` ### 系统信息查看 - 查看 MySQL 版本:`SELECT VERSION();` - 查看当前使用的数据库:`SELECT DATABASE();`
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值