MySQL - 系统库之 information_schema

information_schema 用于存储数据库元数据(metadata)。包含了有关数据库服务器、数据库、表、列、索引、权限、存储引擎和其他数据库对象的信息。information_schema 允许用户查询和检索数据库结构和对象的信息,而不需要直接访问系统表或文件:

用途

  • 查询数据库结构information_schema 可用于查询数据库、表、列、索引、外键、触发器等对象的结构信息。
  • 权限管理:可以使用 information_schema 查询用户和权限信息,以确保正确的访问控制和权限设置。
  • 性能优化information_schema 提供有关索引、表大小、表引擎等性能相关信息,这对于性能优化很有帮助。
  • 查询执行计划:可以查询 information_schema 获取查询执行计划,以了解查询如何被执行。

使用方法

  • 查询数据库中的表:

    SELECT table_name
    FROM information_schema.tables
    WHERE table_schema = '数据库名';
    
  • 查询表的列信息(多库表名重复,会组合起来,不去重):

    SELECT column_name, data_type
    FROM information_schema.columns
    WHERE table_name = '表名';
    
  • 查询用户和权限信息:

    SELECT *
    FROM information_schema.user_privileges;
    
  • 查询索引信息:

    SELECT table_name, index_name
    FROM information_schema.statistics
    WHERE table_schema = '数据库名';
    

以下是一个对比表格,用于对比 information_schemasys 系统库、 performance_schema

特性 information_schema sys 系统库 performance_schema
主要用途 查询数据库结构、权限管理、性能优化 查询执行分析、性能调优、等待事件分析 性能监控、性能分析、资源利用监控、等待事件分析
数据类型 元数据信息、数据库对象结构信息 查询执行分析、等待事件、性能数据 提供广泛的性能数据,包括查询执行、锁等待、I/O操作、连接信息等
使用方法 提供用于查询和检索数据库结构和权限信息的表和视图 提供易于理解和使用的查询和函数 提供多个表和视图,需要编写更复杂的查询和分析

你可能感兴趣的:(mysql,数据库)