原文转自:http://solodu.iteye.com/blog/452968
从MySQL 5开始, 你可以看到多了一个系统数据库information_schema . information_schema 存贮了其他所有数据库的信息。让我们来看看几个使用这个数据库的例子:
<!--more-->
1. 取得关于 information_schema的基本信息
information_schema是一个虚拟数据库,并不物理存在,在select的时候,从其他数据库获取相应的信息。
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | bugs |
- | mysql |
- | sugarcrm |
- +--------------------+
-
4 rows in set (0.00 sec)
以下是information_schema数据库中的表.
- mysql> use information_schema;
- mysql> show tables;
- +---------------------------------------+
- | Tables_in_information_schema |
- +---------------------------------------+
- | CHARACTER_SETS |
- | COLLATIONS |
- | COLLATION_CHARACTER_SET_APPLICABILITY |
- | COLUMNS |
- | COLUMN_PRIVILEGES |
- | KEY_COLUMN_USAGE |
- | PROFILING |
- | ROUTINES |
- | SCHEMATA |
- | SCHEMA_PRIVILEGES |
- | STATISTICS |
- | TABLES |
- | TABLE_CONSTRAINTS |
- | TABLE_PRIVILEGES |
- | TRIGGERS |
- | USER_PRIVILEGES |
- | VIEWS |
- +---------------------------------------+
-
17 rows in set (0.00 sec)
2. 查询表中数据超过1000行的表
- 以下的语句可以查出超过1000行数据的表
-
-
mysql> select concat(table_schema,'.',table_name) as table_name,table_rows
-
-> from information_schema.tables where table_rows > 1000
- -> order by table_rows desc;
-
- +----------------------------------+------------+
- | table_name | table_rows |
- +----------------------------------+------------+
-
| bugs.series_data | 52778 |
-
| bugs.bugs_activity | 26436 |
-
| bugs.longdescs | 21473 |
-
| bugs.email_setting | 5370 |
-
| bugs.attachments | 4714 |
-
| bugs.attach_data | 4651 |
-
| bugs.cc | 4031 |
-
| bugs.bugs | 2190 |
-
| bugs.namedqueries_link_in_footer | 1228 |
- +----------------------------------+------------+
-
9 rows in set (0.04 sec)
3. 查询所有没有主键的表
- This example gives a list of all the tables without primary key.
-
-
SELECT CONCAT(t.table_name,".",t.table_schema) as table_name
- FROM information_schema.TABLES t
- LEFT JOIN information_schema.TABLE_CONSTRAINTS tc
- ON t.table_schema = tc.table_schema
- AND t.table_name = tc.table_name
-
AND tc.constraint_type = 'PRIMARY KEY'
- WHERE tc.constraint_name IS NULL
-
AND t.table_type = 'BASE TABLE';
4. 实现表的历史数据information_schema
Putting the MySQL information_schema to Use article implements a history database using the information schema. The first half of this article describes the requirements for the history database, and a generic design to implement it. The second half describes the stepwise construction of code-generator that creates the SQL to construct and load the history database. The code-generator is driven by the information schema and some features of the information schema are discussed in detail.
5. 查询5个最大表
- mysql> SELECT concat(table_schema,'.',table_name) table_name,
-
-> concat(round(data_length/(1024*1024),2),'M') data_length
- -> FROM information_schema.TABLES
-
-> ORDER BY data_length DESC LIMIT 5;
-
- +--------------------+-------------+
- | table_name | data_length |
- +--------------------+-------------+
-
| bugs.attach_data | 706.89M |
-
| bugs.longdescs | 3.45M |
-
| bugs.bugs_activity | 1.45M |
-
| bugs.series_data | 0.75M |
-
| bugs.attachments | 0.51M |
- +--------------------+-------------+
-
5 rows in set (0.05 sec)
分享到:
相关推荐
6. **SCHEMA_PRIVILEGES**:显示用户的数据库级别权限信息。 7. **TABLE_PRIVILEGES**:显示用户的表级别权限信息。 8. **COLUMN_PRIVILEGES**:显示用户的列级别权限信息。 9. **CHARACTER_SETS**:提供字符集的...
在MySQL数据库管理中,了解和查询数据库及其数据表的信息是至关重要的。`information_schema`是一个特殊的系统数据库,它提供了一种方便的方式来获取关于所有数据库、表、列、存储引擎和其他元数据的信息。在这个...
MySQL数据库中的`information_schema`和`mysql`数据库是系统核心组成部分,它们对于数据库的正常运行至关重要,因此绝对不应该被删除。 `information_schema`数据库是一个特殊的虚拟数据库,它并不存储实际的数据,...
Schemata 表提供了当前 MySQL 数据库中所有数据库的信息,其中 SCHEMA_NAME 字段保存了所有的数据库名。“show databases;”命令的结果即取自此表。通过查询 Schemata 表,可以获取到所有数据库的名称,例如,执行...
MySQL的information_schema数据库是MySQL 5.0版本后引入的一个非常重要的工具,它是一个虚拟的数据库,虽然在物理上并不存在,但提供了...了解和掌握这些信息对于任何MySQL数据库管理员和开发者来说都是必要的技能。
在MySQL中,`information_schema`是一个特殊的数据库,它包含了所有数据库服务器中的元数据信息,比如表、列、索引和权限等。用户通常可以通过查询`information_schema`来获取数据库的相关信息,例如表结构、约束等...
INFORMATION_SCHEMA.STATISTICS表包含了数据库表中索引的统计信息,如索引名、索引使用的列等。 5. INFROMATION_SCHEMA.CHARACTER_SETS表 INFORMATION_SCHEMA.CHARACTER_SETS表存储了MySQL服务器支持的所有字符集的...
SCHEMA_PRIVILEGES 表提供了 MYSQL 数据库中的数据库权限的信息。 STATISTICS 表 STATISTICS 表提供了 MYSQL 数据库中的统计信息。 TABLES 表 TABLES 表提供了 MYSQL 数据库中的表信息。这个表中包含了以下几个...
在MySQL数据库中,通过合理使用索引,可以显著提高查询效率,减少服务器负载,并提升整体性能。 #### 二、查看MySQL索引的方法 在MySQL中,可以通过多种方式来查看数据库中的索引信息。其中一种常用的方法是利用`...
MySQL 5.7 中的 `Information Schema` 是一个虚拟数据库,存储了关于数据库元数据(如表定义、列属性等)的信息。这一架构对于系统管理员和开发者来说非常重要,因为它提供了对数据库内部工作原理的深入洞察。下面将...
代码如下:select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),’ MB’) as data_size,concat(truncate(sum(index_length)/1024/1024,2),’MB’) as index_sizefrom information_schema.tables...
在MySQL数据库系统中,`performance_schema`是一个特殊的存储引擎,自MySQL 5.5版本引入,主要用于监控和分析服务器性能。这个存储引擎提供了一系列表,用于记录和展示关于数据库操作的详细信息,如进程等待时间、锁...
Coinciding with the new native data dictionary in MySQL 8.0, we have made a number of useful enhancements to our INFORMATION_SCHEMA subsystem design in MySQL 8.0. In this post I will first go th
通过对 INFORMATION_SCHEMA 中各个表的查看、创建、修改和删除操作,学生将熟悉 MySQL 中的数据库对象管理。 一、数据字典 数据字典是指数据库系统中关于数据库结构的信息集合。 MySQL 中的数据字典是通过 ...
除了这些主要的表,`information_schema`库还包括其他的表,如`VIEWS`(用于查看视图信息),`STATISTICS`(用于查看表的统计信息,如索引使用情况),`USER_PRIVILEGES`和`SCHEMA_PRIVILEGES`(用于查看用户的权限...