`

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中information_schema系统表

    ### MySQL中的information_schema系统表详解 #### 一、Introduction `information_schema` 是MySQL自5.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应用防火墙...

    四大数据库注入教程.pdf

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

Global site tag (gtag.js) - Google Analytics