当前位置: 首页 > news >正文

Mysql中INFORMATION_SCHEMA虚拟库使用

虚拟库字段讲解

#查看INFORMATION_SCHEMA的表信息
DESC information_schema.tables;
重要列:
TABLE_SCHEMA #表所在的库
TABLE_NAME #表名
ENGINE #表的存储引擎
TABLE_ROWS #表的行数
DATA_LENGTH #表数据行占用的字节数
AVG_ROW_LENGTH #平均行长度
INDEX_LENGTH #索引的长度

案例

例1:查询mysql库中有哪些表
方法一:从硬盘上查找
show tables from mysql;方法二:从内存中查找
select table_name from information_schema.tables where table_schema='mysql';例2:统计mysql库的表数量
select count(table_name) from information_schema.tables where table_schema='mysql';例3:统计当前数据库服务器每个库的表数量
select table_schema as 库名,count(table_name) as 表数量
from information_schema.tables 
group by table_schema;例4:统计当前数据库服务器库的数量
select count(distinct table_schema) as 库数量
from information_schema.tables;注意事项:
1.在企业应用中,应排除系统库,需要在where条件中增加如下下配置
where table_schema not in ('mysql','sys','information_schema','performance_schema')
2.要解决交互问题,能直接通过shell命令来查询出对应的结果
mysql -e "select count(table_name) from information_schema.tables where table_schema='mysql';"例5:统计world库每张表的行数
方法一: 
select count(*) from world.city;
select count(1) from world.city;方法二:
select table_name,table_rows from information_schema.tables where table_schema='world';例6:统计world库每张表的大小
表=索引+数据
注释:
AVG_ROW_LENGTH  表的平均行长度,单位是字节
TABLE_ROWS      表的行数
INDEX_LENGTH    索引的长度,单位是字节AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH select table_name as 表名,FORMAT((AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH)/1024,0) as '大小(KB)'
from information_schema.tables 
where table_schema='world';例7:统计每个业务库的大小select table_schema as 库名,FORMAT(SUM(AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH)/1024,0) as '大小(KB)'
from information_schema.tables
where table_schema not in ('sys','information_schema','performance_schema')
group by table_schema;例8:统计当前数据库总数据select FORMAT(SUM(AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH)/1024,0) as '大小(KB)'
from information_schema.tables;

concat拼接函数

案例环境:单库单表备份
单库单表备份的命令如下:
mysqldump world city >/tmp/world_city.sql如果库名和表名都非常多,那就导致这个操作重复次数多,还需要手动填写库名和表名使用information_schema虚拟库配合concat函数,可以实现快速生成单表备份的指令具体步骤:
1.先修改配置文件,让mysql支持可以输出结果到本地磁盘上
vim /etc/my.cnf
[mysqld]
...
secure-file-priv=/tmp2.改完保存后,重启mysqld服务,让配置生效
systemctl restart mysqld 3.登入mysql,来拼接备份指令,并导出到本地脚本文件中
select concat("mysqldump ",table_schema," ",table_name," > /tmp/",table_schema,"_",table_name,".sql") from information_schema.tables where table_schema not in ('sys','information_schema','performance_schema') into outfile '/tmp/mysql_bak.sh';4.运行该脚本,实现备份
sh /tmp/mysql_bak.sh

http://www.lryc.cn/news/305780.html

相关文章:

  • 【《高性能 MySQL》摘录】第 2 章 MySQL 基准测试
  • 常用的Web应用程序的自动测试工具有哪些
  • 人工智能与开源机器学习框架
  • 高通XBL阶段读取分区
  • [极客大挑战2019]upload
  • [FastDDS] 基于eProsima FastDDS的移动机器人数据中间件
  • 实现外网手机或者电脑随时随地远程访问家里的电脑主机(linux为例)
  • spring boot集成redis
  • Docker的常用命令
  • JSON简介与基本使用
  • 好物周刊#40:多功能文件管理器
  • 【洛谷 P8780】[蓝桥杯 2022 省 B] 刷题统计 题解(贪心算法+模拟+四则运算)
  • 【蓝桥杯入门记录】静态数码管例程
  • 6.openEuler系统服务的配置和管理(二)
  • 一招鲜吃遍天!ChatGPT高级咒语揭秘:记忆、洗稿、速写SEO文章(一)
  • LeetCode 每日一题 2024/2/19-2024/2/25
  • Javaweb之SpringBootWeb案例之配置优先级的详细解析
  • GO框架基础 (三)、xorm库
  • 神经网络系列---回归问题和分类问题
  • Jetpack Compose 与 Kotlin 的兼容性对应关系
  • 汇编反外挂
  • 134 Linux 系统编程11 ,readlink命令,文件目录rwx权限差异,目录操作函数
  • 仿12306校招项目业务二(列车检索)
  • 前端架构: 实现脚手架终端UI样式之ANSI escape code, Chalk, Ora介绍
  • platform(驱动层+应用层)实现终端和中断开关点灯
  • 黑马JavaWeb开发跟学(一)Web前端开发HTML、CSS基础
  • Nest.js权限管理系统开发(四)Swagger API接入
  • (全注解开发)学习Spring-MVC的第三天
  • 设计模式学习笔记 - 面向对象 - 7.为什么要多用组合少用继承?如何决定该用组合还是继承?
  • RocketMQ生产环境常见问题分析与总结