mysql表结构表空间和索引的查询

1.查询表的结构信息

Sql代码

desc tableName;

show columns from tableName;

describe tableName

上面的结果返回的结果是一样的。

2 查询表的列信息。

Sql代码

select * from

information_schema.columns

where table_name=‘tableName‘;

3 查看库中所有的库

Sql代码

SELECT LOWER(schema_name) schema_name

FROM

information_schema.schemata

WHERE

schema_name NOT IN (

‘mysql‘,

‘information_schema‘,

‘test‘

)

4 查询某个库中所有的表

Sql代码

SELECT table_name, create_time updated_at, table_type, ENGINE, table_rows num_rows, table_comment, CEIL(data_length / 1024 / 1024) store_capacity

FROM

information_schema.TABLES

WHERE table_schema = ‘schema_name‘ AND table_name NOT LIKE ‘tmp#_%‘ ESCAPE ‘#‘

5 查看某一个库下某一个表的所有字段

Sql代码

SELECT

lower(column_name) column_name,

ordinal_position position,

column_default dafault_value,

substring(is_nullable, 1, 1) nullable,

column_type data_type,

column_comment,

character_maximum_length data_length,

numeric_precision data_precision,

numeric_scale data_scale

FROM

information_schema.COLUMNS

WHERE

table_schema = ‘admin_portal‘

AND table_name = ‘ap_epiboly_task‘;

6  查看某一个库下某一张表的索引

Sql代码

<strong>SELECT DISTINCT

lower(index_name) index_name,

lower(index_type) type

FROM

information_schema.statistics

WHERE

table_schema = ‘employees‘

AND table_name = ‘employees‘;</strong>

7 查看某一个库下某一个表的注释

Sql代码

SELECT

table_comment comments

FROM

information_schema.TABLES

WHERE

table_schema = ‘employees‘

AND table_name = ‘employees‘;

8

1.查看索引

(1)单位是GB

SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024*1024), 2), ‘ GB‘) AS ‘Total Index Size‘ FROM information_schema.TABLES WHERE table_schema LIKE ‘test‘;

+------------------+

| Total Index Size |

+------------------+

| 1.70 GB |

+------------------+

(2)单位是MB

SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024), 2), ‘ MB‘) AS ‘Total Index Size‘ FROM information_schema.TABLES WHERE table_schema LIKE ‘test‘;

其中“database”为你所要查看的数据库

2.查看表空间

SELECT CONCAT(ROUND(SUM(data_length)/(1024*1024*1024), 2), ‘ GB‘) AS ‘Total Data Size‘

FROM information_schema.TABLES WHERE table_schema LIKE ‘test‘;

+-----------------+

| Total Data Size |

+-----------------+

| 3.01 GB |

+-----------------+

3.查看数据库中所有表的信息

SELECT CONCAT(table_schema,‘.‘,table_name) AS ‘Table Name‘,

CONCAT(ROUND(table_rows/1000000,2),‘M‘) AS ‘Number of Rows‘,

CONCAT(ROUND(data_length/(1024*1024*1024),2),‘G‘) AS ‘Data Size‘,

CONCAT(ROUND(index_length/(1024*1024*1024),2),‘G‘) AS ‘Index Size‘ ,

CONCAT(ROUND((data_length+index_length)/(1024*1024*1024),2),‘G‘) AS‘Total‘FROM information_schema.TABLES WHERE table_schema LIKE ‘test‘;

时间: 2024-08-26 11:42:31

mysql表结构表空间和索引的查询的相关文章

ECshop 数据库表结构 -- 表的结构

ECshop 数据库表结构 -- 表的结构 `ecs_account_log` CREATE TABLE IF NOT EXISTS `ecs_account_log` ( `log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号', `user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应',

MariaDB(MySQL)修改表结构报表空间满

今天数据库表修改表结构,需要添加一列: ALTER TABLE `xxxx_learn` ADD COLUMN `learn_stage_code` VARCHAR(32) NULL DEFAULT '99' COMMENT '学段' AFTER `qualified_rate`; 结果一直报错: ERROR 1114 (HY000) at line 303: The table 'xxxx_learn' is full 刚开始以为可能硬盘空间不够,df -h 查显示正常,所有分区都有空闲. 看

Activiti数据库表结构(表详细版)

http://blog.csdn.net/hj7jay/article/details/51302829 1  Activiti数据库表结构 1.1      数据库表名说明 Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头. 并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配. u  ACT_GE_* : “GE”代表“General”(通用),用在各种情况下: u  ACT_HI_* : “HI”代表“History”(历史)

oracle表结构表数据导入导出

--------------------------------------imp/exp--------------------------------------------------------------------------- //导入表数据以及表结构 imp 用户名/密码@数据库名称 fromuser(文件的指定用户,即从那个用户导入数据)=用户名 touser(目标用户,即导入到当前登录的那个用户)=用户名 file=要导入的dmp文件位置 ignore=y(忽略错误创建) /

mysql复制表结构create table as和like的区别

对于MySQL的复制相同表结构方法,有create table as 和create table like 两种,区别是什么呢? create table t2 as select * from t1 where 1=2;或者 limit 0; as创建出来的t2表(新表)缺少t1表(源表)的索引信息,只有表结构相同,没有索引. create table t2 like t1 ; like 创建出来的新表包含源表的完整表结构和索引信息. 二者的用途:as用来创建相同表结构并复制源表数据.like

MySQL在创建相同表结构时as和like 使用的区别

1.MySQL的复制相同表结构方法: 1)create table table_name as select * from table1 where 1=2 (或者limit  0): 2) create table table_name like table1_name; 二者的用途: as :用来创建相同表结构并复制源表数据.(可根据后面的条件来控制要不要复制源表数据) like:用来创建完整表结构和全部索引. 二者的区别: as :创建出来的table_name缺少table1的索引信息,

mysql 创建相同的表结构

前言: 项目中用到分表存储,需要创建100张表,每个表的结构相同,原始操作,一个个复制粘贴,修改名字.今天DBA给了意见 create table a like b 将b的表结构和索引都复制  create table a as select * from b limit 0 只复制表结构,不复制表索引 参见博客:https://blog.csdn.net/risingsun001/article/details/23449241 原文地址:https://www.cnblogs.com/xia

我所知道的MYSQL快速建表的3种方法

方法一:创建一模一样的表结构(包括索引,不包括表中数据) mysql> desc t_my_series; +-------------+------------+------+-----+---------+----------------+ | Field       | Type       | Null | Key | Default | Extra          | +-------------+------------+------+-----+---------+-------

ECshop 数据库表结构

ECshop 数据库表结构 -- 表的结构 `ecs_account_log`CREATE TABLE IF NOT EXISTS `ecs_account_log` (`log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应',`us