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查询”。

  • 相关阅读:
    121.买卖股票 求最大收益1 Best Time to Buy and Sell Stock
    409.求最长回文串的长度 LongestPalindrome
    202.快乐数 Happy Number
    459.(KMP)求字符串是否由模式重复构成 Repeated Substring Pattern
    326.是否为3的平方根 IsPowerOfThree
    231.是否为2的平方根 IsPowerOfTwo
    461.求两个数字转成二进制后的“汉明距离” Hamming Distance
    206.反转单链表 Reverse Linked List
    448. 数组中缺少的元素 Find All Numbers Disappeared in an Array
    常见表单元素处理
  • 原文地址:https://www.cnblogs.com/wanbin/p/9514649.html
Copyright © 2011-2022 走看看