zoukankan      html  css  js  c++  java
  • 1.INFORMATION_SCHEMA简介

    1. INFORMATION_SCHEMA简介

    INFORMATION_SCHEMA提供对数据库元数据的访问,有关MySQL服务器信息,例如数据库或表的名称,列的数据类型或访问权限。

    • INFORMATION_SCHEMA使用说明

    • 字符集注意事项

    • INFORMATION_SCHEMA作为SHOW语句的替代

    • INFORMATION_SCHEMA和特权

    • 性能注意事项

    1.1 INFORMATION_SCHEMA使用说明

    INFORMATION_SCHEMA是每个MySQL实例中的数据库,该实例存储有关MySQL服务器维护的所有其他数据库的信息。该 INFORMATION_SCHEMA数据库包含几个只读表。它们实际上是视图,而不是基表,因此没有与它们关联的文件,并且您无法在它们上设置触发器。此外,没有具有该名称的数据库目录。

    尽管可以使用USE语句选择INFORMATION_SCHEMA作为缺省数据库,但只能读取表的内容,而不能对它们执行INSERT,UPDATE或DELETE操作。

    以下是从INFORMATION_SCHEMA中检索信息的语句示例:

    mysql> select table_name,table_type,engine from tables
           where table_schema = 'test'
           order by table_name;
    +------------+------------+--------+
    | table_name | table_type | engine |
    +------------+------------+--------+
    | account    | BASE TABLE | InnoDB |
    | t          | BASE TABLE | InnoDB |
    | t1         | BASE TABLE | InnoDB |
    +------------+------------+--------+
    3 rows in set (0.09 sec)
    

    1.2 字符集注意事项

    字符列的定义(例如,TABLES.TABLE_NAME)通常是VARCHAR(N)CHARACTER SET utf8,其中N至少为64。MySQL使用此字符集的默认排序规则(utf8_general_ci)进行所有搜索,排序,比较和 这些列上的其他字符串操作。

    由于某些MySQL对象可以为文件,因此INFORMATION_SCHEMA字符串列中的搜索可能会受到文件系统区分大小写的影响。

    1.3 INFORMATION_SCHEMA作为SHOW语句的替代

    SELECT ... FROM INFORMATION_SCHEMA语句旨在提供对MySQL支持的各种SHOW语句(SHOW DATABASES,SHOW TABLES等)提供的信息的访问的更一致的方法。 与SHOW相比,使用SELECT具有以下优点:

    • 它符合Codd的规则,因为所有访问都是在表上完成的。

    • 您可以使用熟悉的SELECT语句语法,只需要了解一些表名和列名。

    • 实现者无需担心添加关键字。

    • 您可以将INFORMATION_SCHEMA查询的结果过滤,排序,连接和转换为应用程序所需的任何格式,例如数据结构或要解析的文本表示。

    • 此技术可与其他数据库系统更具互操作性。 例如,Oracle数据库用户熟悉在Oracle数据字典中查询表。

    因为SHOW很熟悉并且被广泛使用,所以SHOW语句仍然是另一种选择。 实际上,随着INFORMATION_SCHEMA的实现,SHOW的增强功能见官方文档

    1.4 INFORMATION_SCHEMA和特权

    每个MySQL用户都有权访问这些表,但只能看到表中与用户具有适当访问权限的对象相对应的行。 在某些情况下(例如,INFORMATION_SCHEMA ROUTINES表中的ROUTINE_DEFINITION列),权限不足的用户会看到NULL。 这些限制不适用于InnoDB表; 只有PROCESS权限才能看到它们。

    相同的权限适用于从INFORMATION_SCHEMA中选择信息并通过SHOW语句查看相同的信息。 在任何一种情况下,您都必须拥有对象的某些权限才能查看有关它的信息。

    1.5 性能注意事项

    INFORMATION_SCHEMA查询从多个数据库中搜索信息可能需要很长时间并影响性能。 要检查查询的效率,可以使用EXPLAIN。 有关使用EXPLAIN输出调整INFORMATION_SCHEMA查询的信息,请参考“优化INFORMATION_SCHEMA查询”。

  • 相关阅读:
    数据的追踪审计
    通知模块设计
    数据库'tempdb' 的事务日志已满处理方法
    三级联动
    组合查询
    用户控件
    MDI容器
    控件说明
    winfrom
    自动生成编号
  • 原文地址:https://www.cnblogs.com/wanbin/p/9514649.html
Copyright © 2011-2022 走看看