mysql中information_schema.tables字段说明

1. 获取所有表结构(TABLES)

SELECT  *  FROM information_schema.TABLES WHERE  TABLE_SCHEMA=‘数据库名‘;  TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。各字段说明如下:

字段 含义
table_catalog 数据表登记目录
table_schema 数据表所属的数据库名
table_name 表名称
table_type 表类型[system view|base table]
engine 使用的数据库引擎[MyISAM|CSV|InnoDB]
version 版本,默认值10
row_format 行格式[Compact|Dynamic|Fixed]
table_rows 表里所存多少行数据
avg_row_length 平均行长度
data_length 数据长度
max_data_length 最大数据长度
index_length 索引长度
data_free 空间碎片
auto_increment 做自增主键的自动增量当前值
create_time 表的创建时间
update_time 表的更新时间
check_time 表的检查时间
table_collation 表的字符校验编码集
checksum 校验和
create_options 创建选项
table_comment 表的注释、备注

详细说明:

row_format

若一张表里面不存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫静态表,即该表的row_format是fixed,就是说每条记录所占用的字节一样。其优点读取快,缺点浪费额外一部分空间。

若一张表里面存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫动态表,即该表的row_format是dynamic,就是说每条记录所占用的字节是动态的。其优点节省空间,缺点增加读取的时间开销。

所以,做搜索查询量大的表一般都以空间来换取时间,设计成静态表。

row_format还有其他一些值:

DEFAULT | FIXED | DYNAMIC | COMPRESSED | REDUNDANT | COMPACT

修改行格式

ALTER TABLE table_name ROW_FORMAT = DEFAULT

修改过程导致:

fixed--->dynamic: 这会导致CHAR变成VARCHAR

dynamic--->fixed: 这会导致VARCHAR变成CHAR

data_free

每当MySQL从你的列表中删除了一行内容,该段空间就会被留空。而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大。

当MySQL对数据进行扫描时,它扫描的对象实际是列表的容量需求上限,也就是数据被写入的区域中处于峰值位置的部分。如果进行新的插入操作,MySQL将尝试利用这些留空的区域,但仍然无法将其彻底占用。

1.查询数据库空间碎片:

select table_name,data_free,engine from information_schema.tables where table_schema=‘yourdatabase‘;

2.对数据表优化:

optimeze table `table_name`;

原文链接:

https://www.cnblogs.com/cjm123/p/8435783.html

声明:此博客为个人学习之用,如与其他作品雷同,纯属巧合,转载请指明出处!

原文地址:https://www.cnblogs.com/zhihuifan10/p/12123980.html

时间: 2024-08-28 10:18:29

mysql中information_schema.tables字段说明的相关文章

关于mysql中information_schema.tables

项目中出现这样一个SQL语句,现记录如下: @Select("select table_name tableName, engine, table_comment tableComment, create_time createTime from information_schema.tables" + " where table_schema = (select database())") List<Map<String, Object>>

mysql中information_schema.schemata字段说明

1. 获取所有数据库信息(SCHEMATA) show databases; 查看用户下所有数据库信息:SCHEMATA表:提供了关于数据库中的库的信息.详细表述了某个库的名称,默认编码,排序规则.各字段说明如下: 字段 含义 schema_name 数据库名称 default_character_set_name 数据库编码 default_collation_name 数据库排序规则 声明:此博客为个人学习之用,如与其他作品雷同,纯属巧合,转载请指明出处! 原文地址:https://www.

MySQL中INFORMATION_SCHEMA是什么?(1)

在获取自增ID时,我用到了以下语句: select auto_increment from information_schema.tables where table_name = "表名"; 仔细一看,这其实就是一条查询语句,查询了information_schema数据库下的"tables"表,里面 以 table_name  为 "表名"  的一行记录的  auto_increment字段的值. 那么information_schema数据

MySQL中information_schema 数据库 是干什么的

MySQL中information_schema是什么 大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个information_schema数据库. information_schema数据库是做什么用的呢,使用WordPress博客的朋友可能会想,是不是安装模板添加的数据库呀?看完本片文章 后,你就会对information_schema数据库有所了解. information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式.什么是元数据呢?元数据是

MySQL中information_schema是什么

MySQL中information_schema是什么 大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个information_schema数据库. information_schema数据库是做什么用的呢,使用WordPress博客的朋友可能会想,是不是安装模板添加的数据库呀?看完本片文章 后,你就会对information_schema数据库有所了解. information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式.什么是元数据呢?元数据是

mysql中的null字段值的处理及大小写问题

在MySQL中,NULL字段的处理,需要注意,当在处理查询条件中有NULL,很有可能你得到的值不是想要的,因为,在MySQL中,判断NULL值相等(=)或者不等(!=)都会返回false.主要出现在常见的SELECT以及WHERE字句中. 为了处理这种特殊的情况,MySQL提供了如下的关键字进行特殊处理: IS NULL: 当列的值是NULL,此运算符返回true. IS NOT NULL: 当列的值不为NULL, 运算符返回true. <=>: 比较操作符(不同于=运算符),当比较的的两个值

Mysql中自增字段(AUTO_INCREMENT)的一些常识

Mysql中自增字段(AUTO_INCREMENT)的一些常识 在系统开发过程中,我们经常要用到唯一编号.使用过mysql的人都应该知道,mysql有一个定义列为自增的属性:AUTO_INCREMENT. 指定了AUTO_INCREMENT的列必须要建索引,不然会报错,索引可以为主键索引,当然也可以为非主键索引.(不一定要做主键) 1 2 3 mysql> create table t4 (id int auto_increment); ERROR 1075 (42000): Incorrect

mysql中多个字段共同确定唯一性

create table tbl_table ( id integer not null auto_increment, fname varchar(255), lname varchar(255), CONSTRAINT tbl_table PRIMARY KEY (id), unique (fname,lname) ) mysql中多个字段共同确定唯一性

mysql中的保留字段

摘要 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versio····这句话对于咱们并不陌生,无非就是多了","之类的问题.但是你如果无意之中添加了一个mysql中的保留字段作为数据库中存贮的字段名,悲剧就这样发生了. mysql 保留字 目录[-] mysql的保留字段 前几天因为功能的临时变更,需要给数据表添加一个字段用来区别导入的批次,我就