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查询”。
1.INFORMATION_SCHEMA简介的更多相关文章
- INFORMATION_SCHEMA 表
INFORMATION_SCHEMA 表 INFORMATION_SCHEMA 简介 INFORMATION_SCHEMA.CHARACTER_SETS INFORMATION_SCHEMA.COLL ...
- MySQL的INFORMATION_SCHEMA数据库简介
大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个 information_schema数据库.information_schema数据库是做什么用的呢,使用WordPress博客 ...
- mysql information_schema 数据库简介:
.CHARACTER_SETS 表 CREATE TEMPORARY TABLE `CHARACTER_SETS` ( `CHARACTER_SET_NAME` varchar() NOT NULL ...
- CouchDB简介
类型:开源数据库,Apache项目 存储格式:JSON 查询语言:JavaScript API :MapReduce.HTTP 特点 MVCC(Multiversion concurrency con ...
- [转]细说MySQL Explain和Optimizer Trace简介
在开发过程中,对每个上线的SQL查询指纹(query figerprint)的质量都应有估算:而估算DB查询质量最直接的方法,就是分析其查询执行计划( Query Execution Plan ,即Q ...
- mysql读写分离——中间件ProxySQL的简介与配置
mysql实现读写分离的方式 mysql 实现读写分离的方式有以下几种: 程序修改mysql操作,直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配,需要开发人员协助. am ...
- MySQL简介及安装
一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 01 什么是数据? 02 什么是数据库管理系统 03 数据库管理系统种类 04 MySQL发展 ...
- INFORMATION_SCHEMA获取数据库的信息
简介 information_schema这张数据表保存了MySQL服务器所有数据库的信息.如数据库名,数据库的表,表栏的数据类型与访问权限等.再简单点,这台mysql服务器上,到底有哪些数据库.各个 ...
- 【python】-- MySQL简介、安装、操作
MySQL简介.安装.操作 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储 ...
随机推荐
- spoj SUBLEX - Lexicographical Substring Search【SAM】
先求出SAM,然后考虑定义,点u是一个right集合,代表了长为dis[son]+1~dis[u]的串,然后根据有向边转移是添加一个字符,所以可以根据这个预处理出si[u],表示串u后加字符能有几个本 ...
- 纯JS实现元素加速运动的函数封装
//elem:给哪个元素添加位移:direction:是垂直方向的话就传入top,水平方向left:speed控制速度,向下.向右传入正值,反之传入负值:distance表示位移的距离function ...
- iOS UITextView 设置圆角边框线
textView.layer.borderColor = UIColor.lightGray.cgColor textView.layer.cornerRadius = 4 textView.laye ...
- socket通信模块
1 原理 1.1 模型 应用层协议需要必须传输数据,需要把数据封装为TCP/UDP包来传输,这个对TCP/UDP的封装就是socket通信.在socket里,包括send和receive. 一个服务器 ...
- The Django Book学习笔记 04 模板
如果使用这种方法制作文章肯定不是一个好方法,尽管它便于你理解是怎么工作的. def current_datetime(request): now = datetime.datetime.now() h ...
- git for mac
Git 使用 1.下载完成后打开终端,使用git --version或者which git命令查看安装版本,有就是安装成功了. 2.创建一个全球用户名.全球邮箱 git config --global ...
- Brush (IV) LightOJ - 1018
题意:平面上有一些点,每刷一次可以把同一条直线上的点都刷光,问最少几次把所有点刷光. 方法: 显然是一个状态压缩dp.ans[S]表示把S集合中点刷掉的最少次数.最开始想到的方法是如果S中只有一个或两 ...
- System.Web.Mvc 和 using System.Net.Http 的 Filter
在尝试给webapi增加 ExceptionFilter时,出现了错误,经查询区别如下: System.Web.Mvc.Filters 是给mvc用的 System.Web.Http.Filters ...
- 维骨力Glucosamine的最关键的几点...
1.每日劑量應為多少?長期服用安全嗎? 由於葡萄糖胺(Glucosamine)和軟骨素(Chondroitin)原來就存在於人體,是人體每天會生產製造的必需營養素,因此,一般認為服用此類產品的安全性相 ...
- 堆参数-XMS 与-XMX的说明
XMS : JVM初始分配的堆内存 XMX : JVM最大允许分配的堆内存,按需分配 堆内存分配: JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64: JVM最大分配的堆内存由-Xmx指 ...