博客
关于我
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/

你可能感兴趣的文章
nginx 配置https(一)—— 自签名证书
查看>>
nginx 配置~~~本身就是一个静态资源的服务器
查看>>
Nginx 配置清单(一篇够用)
查看>>
Nginx 配置解析:从基础到高级应用指南
查看>>
nginx+php的搭建
查看>>
nginx+tomcat+memcached
查看>>
nginx+Tomcat性能监控
查看>>
nginx+uwsgi+django
查看>>
Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流
查看>>
Nginx下配置codeigniter框架方法
查看>>
Nginx之二:nginx.conf简单配置(参数详解)
查看>>
Nginx代理websocket配置(解决websocket异常断开连接tcp连接不断问题)
查看>>
Nginx代理初探
查看>>
Nginx代理外网映射
查看>>
Nginx代理模式下 log-format 获取客户端真实IP
查看>>
Nginx代理静态资源(gis瓦片图片)实现非固定ip的url适配网络环境映射ip下的资源请求解决方案
查看>>
Nginx反向代理与正向代理配置
查看>>
Nginx多域名,多证书,多服务配置,实用版
查看>>
nginx异常:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf
查看>>
nginx总结及使用Docker创建nginx教程
查看>>