`

mysql 中的information schema小结

阅读更多
  mysql 5.6中的information schema,就是存储了很多数据库的元数据,其实很多可以用来
做数据库的性能查询用,下面小结介绍其中几个:


1) Information_Schema.Tables
   这里存放的是数据库的所有表的元数据信息,比如下面的语句可以计算哪些表是最占空间的:
 
Select
   Concat(table_schema, '.', table_name) As "Name"
  ,Concat(Round(table_rows / 1000000, 2), 'M') As "Rows"
  ,Concat(Round(data_length / ( 1024 * 1024 * 1024 ), 2), 'G') As "Row Size"
  ,Concat(Round(index_length / ( 1024 * 1024 * 1024 ), 2), 'G') As "Index Size"
  ,Concat(Round(( data_length + index_length ) / ( 1024 * 1024 * 1024 ), 2), 'G') As "Total"
  ,Round(index_length / data_length, 2) "Row / Index Ratio"
From information_schema.TABLES
Order By data_length + index_length DESC
Limit 10;



  又例如:
  Select Table_Name
    -> From Information_Schema.Tables
    -> Where Engine <> 'innodb' and Table_Schema = 'employees';

2) Information_Schema.Columns
  这个是存放管理列的信息了,比如:
   mysql> Select Table_Name, Column_Name From Information_schema.Columns
    -> Where Column_Name Like '%name%' And Table_Schema = 'employees';

3) Information_Schema.Referential_Constraints
  这里是存放什么表用到什么样的外键
    mysql> Select
    ->    Table_Name
    ->   ,Constraint_Name
    ->   ,Referenced_Table_Name Ref_Tbl
    ->   ,Unique_Constraint_Name As Ref_Cnstr
    -> From Information_schema.Referential_Constraints
    -> Where Constraint_Schema = 'employees';
+--------------+---------------------+-------------+-----------+
| Table_Name   | Constraint_Name     | Ref_Tbl     | Ref_Cnstr |
+--------------+---------------------+-------------+-----------+
| dept_emp     | dept_emp_ibfk_1     | employees   | PRIMARY   |
| dept_emp     | dept_emp_ibfk_2     | departments | PRIMARY   |
| dept_manager | dept_manager_ibfk_1 | employees   | PRIMARY   |
| dept_manager | dept_manager_ibfk_2 | departments | PRIMARY   |
| salaries     | salaries_ibfk_1     | employees   | PRIMARY   |
| titles       | titles_ibfk_1       | employees   | PRIMARY   |
+--------------+---------------------+-------------+-----------+
6 rows in set (0.00 sec)

4) Information_Schema.Key_Column_Usage
  这个是用来显示组成索引的有哪些列,比如:
利用mysql 的INFORMATION_SCHEMA.KEY_COLUMN_USAGE表查找某个表的外键(primary, unique, and foreign key constraints)
语句:select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME ='guestbook' and CONSTRAINT_NAME LIKE 'fk_%';


5)
Information_Schema.Processlist
看进程情况
   mysql> Select User, Command, Time From Information_schema.processlist;
+------+---------+------+
| User | Command | Time |
+------+---------+------+
| root | Sleep   |   86 |
| root | Sleep   |  439 |
| root | Query   |    0 |
+------+---------+------+
3 rows in set (0.01 sec)

6) Information_Schema.InnoDb_Lock_Waits
  看等待事件
  Select
   r.trx_id waiting_trx_id
  ,r.trx_mysql_thread_id waiting_thread
  ,r.trx_query waiting_query
  ,b.trx_id blocking_trx_id
  ,b.trx_mysql_thread_id blocking_thread
  ,b.trx_query blocking_query
From information_schema.innodb_lock_waits w
Join information_schema.innodb_trx b On b.trx_id = w.blocking_trx_id
Join information_schema.innodb_trx r On r.trx_id = w.requesting_trx_id;
2
0
分享到:
评论

相关推荐

    mysql 教程-查看数据库.pdf

    在上面的示例中,执行 SHOW DATABASES 语句后,显示了 5 个数据库,分别是 mysql、information_schema、performance_schema、sys 和 test。 mysql 数据库 mysql 数据库是 MySQL 的默认数据库,主要用于存储用户...

    MySQL数据库技术实验报告(实验1 MySQL的使用)

    实验小结中提到,安装MySQL时可能会遇到问题,比如安装失败或者卸载不彻底。这种情况下,可能需要使用专门的清理工具来确保所有关联文件都被正确删除,然后再重新安装。在配置MySQL时,为了支持中文字符,需要在安装...

    MySQL数据库技术》实验报告模板.doc

    * 将当前的数据库设定为 information_schema,并查看数据库数据库中有哪些表 实验小结 在安装 MySql 中有时可能不能安装不成功,那么卸载时,会存在删除不完全的情况。导致再次安装时依然不成功。在对某个数据库...

    关于MySQL实验报告填写

    实验小结强调了安装过程中的常见问题和解决方案,如彻底卸载、字符集选择等,同时也提醒了在进行数据库操作前必须先选择目标数据库。 通过本次实验,学生不仅掌握了 MySQL 的基本安装和使用,还对数据库管理有了...

    MySQL数据库:使用NAVICAT工具创建和管理索引.pptx

    在NAVICAT中,你可以通过查询MySQL的`INFORMATION_SCHEMA`库中的`STATISTICS`表或者`INDEXES`视图来查看表的索引信息,包括索引名称、类型、包含的列等。 2. **修改索引**: 如果需要修改索引,比如更改索引类型...

    MySQL数据库技术实验报告模板.doc

    实验小结: 通过本次实验,学生不仅掌握了MySQL的安装与基本操作,还学习了如何解决安装过程中可能出现的问题,如字符集设置和数据库对象的管理。同时,对MySQL客户端的使用有了深入的理解,为进一步学习和应用MySQL...

    在多表中查找一个表名或者字段名的 SQL 语句

    ### 小结 无论是Oracle还是MySQL,通过使用特定的SQL语句,你都可以有效地在多表中查找包含特定字符串的表名或字段名。这些查询技巧对于维护和优化大型数据库系统尤其有用,它们帮助你快速定位到感兴趣的数据,从而...

    六条比较有用的MySQL数据库操作的SQL语句小结

    在MySQL数据库操作中,SQL(Structured Query Language)是不可或缺的工具,它用于管理关系数据库系统。以下是六个实用的SQL语句,对初学者尤其有帮助: 1. **计算年数** 当需要根据生日计算年龄时,可以使用以下...

    SQL注入绕WAF小结

    ### SQL注入绕WAF小结 #### 一、概述 SQL注入是一种常见的Web应用程序安全漏洞,攻击者通过向Web应用程序提交恶意SQL语句来获取敏感数据、修改数据或执行其他非法操作。随着网络安全技术的发展,Web应用防火墙...

    php网络开发完全手册

    1.7 小结 23 第2章 PHP的基础语法 24 2.1 语言构成与工作原理 24 2.2 常量与变量 25 2.2.1 常量的定义 25 2.2.2 变量的定义 26 2.2.3 变量的作用域 27 2.2.4 动态变量 29 2.3 运算符和关键字 29 2.4 流程控制语法 30...

    四大数据库注入教程.pdf

    针对MySQL的SQL注入攻击策略通常涉及利用其特有的函数或特性,如`information_schema`等。 ##### 2. Oracle数据库注入攻击 Oracle数据库因其强大的功能和稳定性,在大型企业级应用中占据重要地位。针对Oracle的SQL...

Global site tag (gtag.js) - Google Analytics