博客
关于我
mysql-----information_schema
阅读量:211 次
发布时间:2019-02-28

本文共 2268 字,大约阅读时间需要 7 分钟。

MySQL的INFORMATION_SCHEMA数据库是一个重要的元数据资源,它提供了关于MySQL服务器中数据库、表、列等元数据的详细信息。以下将从多个维度对INFORMATION_SCHEMA的相关表进行说明。

1. 数据库元数据概述

INFORMATION_SCHEMA数据库自MySQL 5.0版本起引入,旨在统一地存储和管理数据库的元数据信息。通过查询INFORMATION_SCHEMA中的相关表,可以轻松获取以下信息:

  • 数据库的结构和属性
  • 数据库中表的定义和特性
  • 表中字段的数据类型和约束
  • 数据库及表的访问权限策略
  • 存储程序、触发器等组件的信息

2. 关键表的功能说明

INFORMATION_SCHEMA包含多个重要表,每个表专注于不同层面的元数据信息。以下是几个常见表的说明:

2.1 SCHEMATA表

SCHEMATA表提供了数据库的高层次信息,包括:

  • 数据库名称
  • 数据库的版本信息
  • 数据库的字符集设置
  • 数据库的存储引擎类型
  • 数据库的Collation(排序规则)

2.2 TABLES表

TABLES表是INFORMATION_SCHEMA中最核心的表之一,主要信息包括:

  • 表的名称
  • 表所属的数据库名称
  • 表的类型(例如普通表、视图、临时表等)
  • 表的大小信息(例如行数、存储空间)
  • 表的创建时间和修改时间

2.3 COLUMNS表

COLLATIONS表提供了关于字符集的信息,具体包括:

  • 字符集名称
  • 字符集的字符编码方式
  • 字符集的Collation(排序规则)
  • 字符集的适用性描述

2.4 STATISTICS表

STATISTICS表描述了表的索引信息,包括:

  • 索引的名称
  • 索引的列名称
  • 索引的类型(例如普通索引、唯一索引、主键索引)
  • 索引的长度
  • 索引的存储空间
  • 索引的使用频率统计

2.5 USER_PRIVILEGES表

USER_PRIVILEGES表提供了关于用户权限的信息,包括:

  • 用户的ID
  • 用户的账户名
  • 用户被授予的权限项
  • 权限的生效时间
  • 权限的失效时间

2.6 SCHEMA_PRIVILEGES表

SCHEMA_PRIVILEGES表描述了数据库级别的权限信息,包括:

  • 数据库的名称
  • 用户的ID
  • 用户被授予的数据库级别权限
  • 权限的生效时间
  • 权限的失效时间

2.7 TABLE_PRIVILEGES表

TABLE_PRIVILEGES表提供了表级别的权限信息,包括:

  • 表的名称
  • 用户的ID
  • 用户被授予的表级别权限
  • 权限的生效时间
  • 权限的失效时间

2.8 COLUMN_PRIVILEGES表

COLUMN_PRIVILEGES表描述了列级别的权限信息,包括:

  • 列的名称
  • 用户的ID
  • 用户被授予的列级别权限
  • 权限的生效时间
  • 权限的失效时间

2.9 CHARACTER_SETS表

CHARACTER_SETS表提供了可用的字符集信息,包括:

  • 字符集的名称
  • 字符集的字符编码方式
  • 字符集的Collation(排序规则)
  • 字符集的默认名称

2.10 COLLATIONS表

COLLATIONS表提供了关于Collation(排序规则)的详细信息,包括:

  • Collation的名称
  • Collation的字符集名称
  • Collation的排序规则
  • Collation的存储空间
  • Collation的比较结果

2.11 TABLE_CONSTRAINTS表

TABLE_CONSTRAINTS表描述了存在约束的表,包括:

  • 表的名称
  • 约束的类型(例如主键约束、外键约束、唯一约束等)
  • 约束的列名称
  • 约束的定义
  • 约束的创建时间

2.12 KEY_COLUMN_USAGE表

KEY_COLUMN_USAGE表描述了具有外键约束的键列,包括:

  • 外键约束的表名称
  • 外键约束的列名称
  • 主键表的名称
  • 主键表的主键列名称
  • 外键约束的定义

2.13 ROUTINES表

ROUTINES表提供了关于存储程序(存储程序和函数)的信息,包括:

  • 存储程序或函数的名称
  • 存储程序或函数的库名
  • 存储程序或函数的类型(例如函数、存储程序)
  • 存储程序或函数的参数定义
  • 存储程序或函数的返回类型

2.14 VIEWS表

VIEWS表提供了关于数据库视图的信息,包括:

  • 视图的名称
  • 视图所属的数据库名称
  • 视图的视图定义
  • 视图的创建时间
  • 视图的修改时间

2.15 TRIGGERS表

TRIGGERS表描述了触发程序的信息,包括:

  • 触发器的名称
  • 触发器的事件类型(例如插入、更新、删除)
  • 触发器的表名称
  • 触发器的触发条件
  • 触发器的执行语句

3. 权限管理

INFORMATION_SCHEMA数据库还提供了丰富的权限相关信息,包括:

  • 数据库级别权限:通过SCHEMA_PRIVILEGES表获取数据库级别的权限信息
  • 表级别权限:通过TABLE_PRIVILEGES表获取表级别的权限信息
  • 列级别权限:通过COLUMN_PRIVILEGES表获取列级别的权限信息
  • 用户级别权限:通过USER_PRIVILEGES表获取用户级别的权限信息

4. 应用场景

INFORMATION_SCHEMA数据库广泛应用于以下场景:

  • 数据库迁移:了解目标数据库的结构和约束
  • 性能优化:分析表的大小和索引情况
  • 安全管理:审查用户和权限配置
  • 数据库维护:了解数据库的创建时间和修改时间
  • 视图和触发器管理:查看现有视图和触发器的定义

通过合理利用INFORMATION_SCHEMA数据库的信息,开发人员可以更高效地管理MySQL服务器,确保数据库的稳定性和安全性。

转载地址:http://tpms.baihongyu.com/

你可能感兴趣的文章
No 'Access-Control-Allow-Origin' header is present on the requested resource.
查看>>
NO 157 去掉禅道访问地址中的zentao
查看>>
no available service ‘default‘ found, please make sure registry config corre seata
查看>>
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
查看>>
no connection could be made because the target machine actively refused it.问题解决
查看>>
No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
查看>>
No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
查看>>
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
查看>>
No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
查看>>
No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
查看>>
No module named 'crispy_forms'等使用pycharm开发
查看>>
No module named cv2
查看>>
No module named tensorboard.main在安装tensorboardX的时候遇到的问题
查看>>
No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
查看>>
No new migrations found. Your system is up-to-date.
查看>>
No qualifying bean of type XXX found for dependency XXX.
查看>>
No qualifying bean of type ‘com.netflix.discovery.AbstractDiscoveryClientOptionalArgs<?>‘ available
查看>>
No resource identifier found for attribute 'srcCompat' in package的解决办法
查看>>
no session found for current thread
查看>>
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
查看>>