MySQL的information_schema库一些用法
MySQL中有一个名为 information_schema 的数据库,在该库中有一个 TABLES 表,这个表主要字段分别是:
TABLE_SCHEMA : 数据库名,
TABLE_NAME:表名,
ENGINE:所使用的存储引擎,
TABLES_ROWS:记录数,
DATA_LENGTH:数据大小,
INDEX_LENGTH:索引大小
统计数据主要使用的就是这张表了。
1.查询数据库表数量
-- 查询MySQL服务中所有数据库及其表数量
SELECT table_schema as 数据库名称 , COUNT(*) as 表数量
FROM information_schema.TABLES
GROUP BY table_schema;
2.查询指定数据库及其表数量
SELECT table_schema as 库名 , count(*) as 表数量
FROM information_schema.TABLES
where table_schema = 'smart-om-file'
3.查询某个表中有多少字段
-- 查询某个表中有多少字段
SELECT COUNT(*) 字段数量
FROM information_schema. COLUMNS
WHERE table_schema = 'smart-om-file'
AND table_name = 'fs_category';
4.查询某个数据库中所有表共有多少字段
-- 查询某个数据库中所有表共有多少字段
SELECT COUNT(column_name) as 总字段量
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'smart-om-file';
5. 查询某数据库中所有表、字段、字段类型、注释等信息
-- 查询某数据库中所有表、字段、字段类型、注释等信息
SELECT TABLE_NAME 表名, column_name 字段名, DATA_TYPE 数据类型, column_comment 注释
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'smart-om-file';
6.统计某数据库中每个表的数据量
-- 统计某数据库中每个表的数据量
SELECT TABLE_NAME as 表名,
(DATA_LENGTH/1024/1024) as 数据大小_兆 ,
(INDEX_LENGTH/1024/1024) as 索引数据大小_兆,
((DATA_LENGTH+INDEX_LENGTH)/1024/1024) as 总数据大小_兆,
TABLE_ROWS as 总数据条数
FROM TABLES
WHERE TABLE_SCHEMA = 'smart-om-file';
7.查询某数据库总数据大小
-- 查询某数据库总数据大小
SELECT (sum(DATA_LENGTH)/1024/1024) as 总数据量_单位M
from `TABLES`
WHERE TABLE_SCHEMA = 'smart-om-file';
8.查询某数据库中每张表数据条数
-- 查询某数据库中每张表数据条数
select table_name as 表名 , table_rows as 数据条数
from tables
where TABLE_SCHEMA = 'smart-om-file'
9.查询某数据库内所有表总数据条数
-- 查询某数据库内所有表总数据条数
SELECT sum(table_rows) as 总数据条数
from tables
where TABLE_SCHEMA = 'smart-om-file'