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

1.INFORMATION_SCHEMA简介的更多相关文章

  1. INFORMATION_SCHEMA 表

    INFORMATION_SCHEMA 表 INFORMATION_SCHEMA 简介 INFORMATION_SCHEMA.CHARACTER_SETS INFORMATION_SCHEMA.COLL ...

  2. MySQL的INFORMATION_SCHEMA数据库简介

    大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个 information_schema数据库.information_schema数据库是做什么用的呢,使用WordPress博客 ...

  3. mysql information_schema 数据库简介:

    .CHARACTER_SETS 表 CREATE TEMPORARY TABLE `CHARACTER_SETS` ( `CHARACTER_SET_NAME` varchar() NOT NULL ...

  4. CouchDB简介

    类型:开源数据库,Apache项目 存储格式:JSON 查询语言:JavaScript API :MapReduce.HTTP 特点 MVCC(Multiversion concurrency con ...

  5. [转]细说MySQL Explain和Optimizer Trace简介

    在开发过程中,对每个上线的SQL查询指纹(query figerprint)的质量都应有估算:而估算DB查询质量最直接的方法,就是分析其查询执行计划( Query Execution Plan ,即Q ...

  6. mysql读写分离——中间件ProxySQL的简介与配置

    mysql实现读写分离的方式 mysql 实现读写分离的方式有以下几种: 程序修改mysql操作,直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配,需要开发人员协助. am ...

  7. MySQL简介及安装

    一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 01 什么是数据? 02 什么是数据库管理系统 03 数据库管理系统种类 04 MySQL发展 ...

  8. INFORMATION_SCHEMA获取数据库的信息

    简介 information_schema这张数据表保存了MySQL服务器所有数据库的信息.如数据库名,数据库的表,表栏的数据类型与访问权限等.再简单点,这台mysql服务器上,到底有哪些数据库.各个 ...

  9. 【python】-- MySQL简介、安装、操作

    MySQL简介.安装.操作 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储 ...

随机推荐

  1. bzoj 3224: Tyvj 1728 普通平衡树【非旋treap】

    就是非旋treap的板子 #include<iostream> #include<cstdio> #include<cstdlib> using namespace ...

  2. ionic4+angular7+cordova上传图片

    安装插件 安装插件Image Picker $ ionic cordova plugin add cordova-plugin-telerik-imagepicker $ npm install @i ...

  3. influxdb数据库的安装部署(windows)二

    1.把下载好的文件解压到目录中 2.以管理员身份运行cmd进入influxdb-1.7.6-1文件夹 3.生成influxdb数据的默认配置Config文件 4.修改Config配置信息 5.用配置好 ...

  4. useradd user 错误解决

    今天给安装Sequoiadb 软体时,出现添加用户和组失败,显示错误: cannot lock /et/passwd; try again later. 在网上查了一下,说是/etc/passwd 文 ...

  5. css - 单词的自动换行问题

    转载自:解决文档中有url链接时被强制换行的问题 问题 当行内出现很长的英文单词或者url的时候,会出现自动换行的问题,为了美化页面,往往会希望这些很长的英文单词或者url能够断开来,超出的部分换行到 ...

  6. android 百度地图

    展示当前位置地图 参考百度定位demo (LocationDemo) 实现此功能,运行发现 BDLocationListener 的onReceiveLocation方法无法执行,原因是 Androi ...

  7. 跟我一起玩Win32开发(4):创建菜单

    也不知道发生什么事情,CSDN把我的文章弄到首页,结果有不少说我在误人子弟,是啊,我去年就说过了,如果你要成为砖家级人物,请远离我的博客,我这个人没什么特长,唯一厉害的一点就是不相信权威,鄙视砖家,所 ...

  8. The Django Book学习笔记 04 模板

    如果使用这种方法制作文章肯定不是一个好方法,尽管它便于你理解是怎么工作的. def current_datetime(request): now = datetime.datetime.now() h ...

  9. 执行impdp时ORA-39213: Metadata processing is not available错误处理

    通过impdp命令将Oracle11g数据库的dmp文件导入至Oracle10g中时,报出如下错误: [oracle@dbsrv3 ~]$ impdp dhccms/dhccms DIRECTORY= ...

  10. ubuntu server 14.04LTS升级Python3.5

    依次执行如下命令:需要root权限,普通用户可以使用sudo 来执行以下命令 root@ubuntu-server:~# add-apt-repository ppa:fkrull/deadsnake ...