ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql元数据

2022-02-14 16:49:29  阅读:154  来源: 互联网

标签:information world LENGTH mysql table 数据 TABLE schema


mysql系统自带的库

information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等

performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象

mysql: 授权库,主要存储系统用户的权限信息

元数据information_schema

information_schema的基本应用
use information_schema;

desc tables; #tables是 information_schema库中的一个表

以下为tables中一些常用的字段

TABLE_SCHEMA 表所在的库名

TABLE_NAME 表名

ENGINE 存储引擎

TABLE_ROWS 数据行数

AVG_ROW_LENGTH 平均行长度

INDEX_LENGTH 索引长度

SELECT table_schema,table_name FROM information_schema.tables; #结果为所有库下的所有表

SELECT table_schema,table_name,ENGINE FROM information_schema.tables where ENGINE='INNODB';

. 统计world下的city表占用空间大小

-- 表占用磁盘空间=平均行长度*行数+索引长度

-- AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH

SELECT table_name,(AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH)/1024

FROM information_schema.TABLES

WHERE table_schema='world' AND table_name='city';

-- 5. 统计world库占用空间大小

在表的基础上加sum函数

SELECT table_schema,SUM((AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH))/1024

FROM information_schema.TABLES

WHERE table_schema='world';

统计每个库占用空间大小

SELECT table_schema,SUM((AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH))/1024 total_size_KB

FROM information_schema.TABLES

group by table_schema;

2.2 配合concat()函数拼接语句或命令

例子:

-- 1. 模仿以下语句,进行数据库的分库分表备份。

mysqldump -uroot -p123 world city >/bak/world_city.sql

SELECT

CONCAT("mysqldump -uroot -p123 ",table_schema," ",table_name

," >/bak/",table_schema,"_",table_name,".sql")

FROM information_schema.tables;

-- 2. 模仿以下语句,进行批量生成对world库下所有表进行操作

ALTER TABLE world.city DISCARD TABLESPACE;

SELECT

CONCAT("ALTER TABLE ",table_schema,".",table_name," DISCARD TABLESPACE;")

FROM information_schema.tables

WHERE table_schema='world';

标签:information,world,LENGTH,mysql,table,数据,TABLE,schema
来源: https://www.cnblogs.com/landson/p/15893118.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有