【mysql系】数据库统计各个表的大小、表备注搜索表名、表分区等常用sql查询

查找数据库表行数以及容量大小


SELECT TABLE_NAME, concat( round( DATA_LENGTH / 1024 / 1024, 3),'MB') as 数据容量占用, concat( round(  INDEX_LENGTH / 1024 / 1024, 3),'MB') as 索引容量占用, TABLE_ROWS
FROM
 information_schema.TABLES 
WHERE
 TABLE_SCHEMA = '数据库名称' 
 and  TABLE_ROWS > 1
ORDER BY
 TABLE_ROWS DESC

通过表名注释来搜索对应表名


SELECT
    table_name '表名',
    TABLE_COMMENT '表注解' 
FROM
    INFORMATION_SCHEMA.TABLES 
WHERE
    table_schema = '数据库名称' 
    AND TABLE_COMMENT LIKE '%角色%';

查询数据库表数据量大于10万是否有创建分区

num_partitions > 0代表已经创建分区



SELECT 
    table_name, 
    COUNT(DISTINCT partition_ordinal_position) AS num_partitions,
    TABLE_ROWS 
FROM 
    information_schema.partitions 
where TABLE_ROWS > 100000 
GROUP BY 
    table_name 
HAVING 
    num_partitions = 0

查询mysq表分区详细信息


SELECT
    PARTITION_NAME,
    PARTITION_METHOD,
    PARTITION_EXPRESSION,
    PARTITION_DESCRIPTION,
    FROM_DAYS(PARTITION_DESCRIPTION),
    TABLE_ROWS,
    SUBPARTITION_NAME,
    SUBPARTITION_METHOD,
    SUBPARTITION_EXPRESSION 
FROM
    information_schema.PARTITIONS 
WHERE
    TABLE_SCHEMA = SCHEMA () 
    AND TABLE_NAME = 'po_order';

 取消数据库原有表主键自增ID为bigint(20)

SELECT 
CONCAT('ALTER TABLE ', TABLE_NAME, ' MODIFY  COLUMN ', COLUMN_NAME, ' ', ' bigint(20) NOT NULL FIRST',';') AS '改表sql'
FROM
information_schema.COLUMNS
WHERE
TABLE_SCHEMA = '库名'
AND column_key = 'PRI' ORDER BY table_name

查看数据库有外键约束的表

SELECT DISTINCT
	( TABLE_NAME ) 
FROM
	information_schema.KEY_COLUMN_USAGE 
WHERE
	CONSTRAINT_SCHEMA = 'upm_lmdm' 
	AND REFERENCED_TABLE_NAME IS NOT NULL

查看blob数据类型的字符串内容 

select  UNHEX(HEX(字段)) from 表名

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值