shell 获取 mysql 行数_一个Shell小脚本精准统计Mysql每张表的行数实现
前言
对于开发或者运维人员来说,Mysql数据库每张表的数量肯定是要了解下,有助于我们清理无用数据或者了解哪张表比较占用空间。
另外多次统计表的行数,还能发现Mysql表的增量情况,能够预测表未来会有多大的量。
废话不多说,直接带大家写一个简单的Shell小脚本
循环获取数据库名
直接上Shell代码,show databases获取所有的库名。结果有一个我们不想要的,就是Database,这个grep -v掉,轻松获取所有数据库
[root@shijiangeit ~]# mysql -h 127.0.0.1 -uxxx -pxxx -e "show databases;" 2>/dev/null
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| shijiange |
| test |
| wordpress |
+--------------------+
[root@shijiangeit ~]# mysql -h 127.0.0.1 -uxxx -pxxx -e "show databases;" 2>/dev/null |grep -v Database
information_schema
mysql
performance_schema
shijiange
test
wordpress
循环获取所有表
有了库信息,获取所有表就简单了,直接上Shell代码。show tables获取所有表名,其中Tables_in不需要,grep -v掉。
[root@shijiangeit ~]# for onedb in $(mysql -h 127.0.0.1 -uxxx -pxxx -e "show databases;" 2>/dev/null |grep -v Database);do
> echo $onedb
> mysql -h 127.0.0.1 -uxxx -pxxx $onedb -e "show tables" 2>/dev/null
> done
information_schema
+---------------------------------------+
| Tables_in_information_schema |
+---------------------------------------+
| CHARACTER_SETS |
| COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS |
| COLUMN_PRIVILEGES |
| ENGINES |
| EVENTS |
| FILES |
| GLOBAL_STATUS |
| GLOBAL_VARIABLES |
| KEY_COLUMN_USAGE |
循环统计每张表的行数
取出库名加表名,一个select count(1)统计表的行数,循环统计,直接上Shell代码。
[root@shijiangeit ~]# for onedb in $(mysql -h 127.0.0.1 -uxxx -pxxx -e "show databases;" 2>/dev/null |grep -v Database);do
> for onetab in $(mysql -h 127.0.0.1 -uxxx -pxxx $onedb -e "show tables" 2>/dev/null |grep -v 'Tables_in_');do
> onetablength=$(mysql -h 127.0.0.1 -uxxx -pxxx $onedb -e "select count(1) from $onetab" 2>/dev/null |grep -v 'count')
> echo -e "$onedb.$onetab\t$onetablength"
> done
> done
information_schema.CHARACTER_SETS 40
information_schema.COLLATIONS 219
information_schema.COLLATION_CHARACTER_SET_APPLICABILITY 219
information_schema.COLUMNS 1789
information_schema.COLUMN_PRIVILEGES 0
shijiange.logincount 4
shijiange.member 0
shijiange.user 2097153
test.detect_servers 0
wordpress.wp_commentmeta 0
wordpress.wp_comments 0
wordpress.wp_links 0
wordpress.wp_options 156
变量化,脚本直接用
需要统计哪个Mysql,前面三个变量一改,立马就能统计所有表的大小了。
mysqlhost=127.0.0.1
mysqluser=xxx
mysqlpassword=xxx
for onedb in $(mysql -h $mysqlhost -u$mysqluser -p$mysqlpassword -e "show databases;" 2>/dev/null |grep -v Database);do
for onetab in $(mysql -h $mysqlhost -u$mysqluser -p$mysqlpassword $onedb -e "show tables" 2>/dev/null |grep -v 'Tables_in_');do
onetablength=$(mysql -h $mysqlhost -u$mysqluser -p$mysqlpassword $onedb -e "select count(1) from $onetab" 2>/dev/null |grep -v 'count')
echo -e "$onedb.$onetab\t$onetablength"
done
done
想看哪张表的行数最多?
之前的脚本加个 |sort -nrk 2|less 搞定,超实用的小脚本就这样完成了
[root@shijiangeit ~]# for onedb in $(mysql -h $mysqlhost -u$mysqluser -p$mysqlpassword -e "show databases;" 2>/dev/null |grep -v Database);do
> for onetab in $(mysql -h $mysqlhost -u$mysqluser -p$mysqlpassword $onedb -e "show tables" 2>/dev/null |grep -v 'Tables_in_');do
> onetablength=$(mysql -h $mysqlhost -u$mysqluser -p$mysqlpassword $onedb -e "select count(1) from $onetab" 2>/dev/null |grep -v 'count')
> echo -e "$onedb.$onetab\t$onetablength"
> done
> done | sort -nrk 2
shijiange.user 2097153
information_schema.INNODB_BUFFER_PAGE 8191
performance_schema.events_waits_summary_by_thread_by_event_name 5320
information_schema.INNODB_BUFFER_PAGE_LRU 3453
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持免费资源网。
shell 获取 mysql 行数_一个Shell小脚本精准统计Mysql每张表的行数实现相关推荐
- python爬取b站粉丝数_【python爬虫】每天统计一遍up主粉丝数!
每天统计一遍up主粉丝数! 第一步,爬取up主的粉丝信息 为了方便,这里我把它写成了一个函数 1.首先导入需要的包 requests是必不可少的! import requests as req 想要记 ...
- 魔域mysql怎么连接数据库_怪物入包脚本:Navicat for MySQL使用Navi
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 怪物入包脚本: Navicat for MySQL使用Navicat for MySQL连接数据库在 my 数据库中 找到 cq_action ,cq_m ...
- 魔域mysql数据库下载_怪物入包脚本:Navicat for MySQL使用Navi
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 怪物入包脚本: Navicat for MySQL使用Navicat for MySQL连接数据库在 my 数据库中 找到 cq_action ,cq_m ...
- centos7输入shell找不到命令_反弹shell原理与实现
什么是反弹shell? 反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端.reverse shell与tel ...
- Linux Shell编程(2)——第一个shell程序
在最简单的情况下,脚本程序不过是存储在一个文件里的系统命令列表.这至少让你执行它 时不必重新按顺序键入相同功能的命令序列. 一个清空/var/log目录下的日志文件的脚本 # Cleanup # 必须 ...
- excel转mysql 工具_一个简单的批量excel转mysql工具
背景:工作中,经常发现需要将excel中的表数据导入到mysql中,实际操作一般都是用navcat,但是使用中也发现navcat只支持单个表导入,对xlsx格式支持不友好.于是写了这么一个导表工具.在 ...
- 控制发送的请求条数_一个 HTTP 请求的曲折经历
关注"逆锋起笔"领取视频教程☞ 程序员进阶必备资源免费送「各种技术!」 ☜ 来源:www.neroht.com/article-detail/18从一个经典的面试题说起,输入URL ...
- mysql 用户名 长度_一个 MySQL 用户名长度的坑
今天使用 PHP 连接一个 MySQL 数据库的时候连不上,提示无权限. 因为 MySQL 是在另外一个机房,首先想到的是防火墙的原因,但使用 MySQL-cli 却能正常连接,遂排除这种可能. 又怀 ...
- mysql 消息队列_一个简单的 MySQL 批量事务消息队列
基于 MySQL 的批量事务消息队列 消息队列本质上是一个存储介质,通常是链表结构,不同的进程或线程可以向消息队列中写入或读取消息.消息队列的使用场景有很多,比如异步处理任务.应用解耦.流量削锋等等. ...
最新文章
- pythonurllib模块-Python urllib模块 网络资源访问安装下载
- 甲骨文正式发布Java 14(Oracle JDK 14)
- 2048游戏C语言代码
- 【数据库】PLSQL Developer出现ORA-12541TNS no listener错误解决方法
- SAP 电商云 Spartacus UI Quick order 产品搜索结果页面的显示逻辑
- python 图片 变清晰_python实现图片变亮或者变暗的方法
- thinkphp的增删改查
- 关于mysql中select出数据未排序问题
- Lottie动画 轻松使用
- python数字转换英文26字母_用python实现英文字母和相应序数转换的方法
- 【踩坑系列】SpringBoot 项目更换浏览器选项卡的图标
- 程序员数学(23)–图形的旋转与中心对称
- 投稿状态(status)记录 IEEE wireless communications letters (IEEE WCL)
- 您要的FPGA开发软件都在这里
- XML shema 约束入门 (2 ) 约束文件加入与说明
- 80页4万字政务综合服务平台建设项目方案书(完整版)
- html 表情转换器,HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
- 正确使用uniapp搭配微信开发者工具自带的骨架屏功能,生成骨架屏
- 埋点 神策小程序_神策埋点思路
- 编码器-解码器(seq2seq)
热门文章
- Heap(堆结构/优先队列)-Swift实现
- 实现物体绕不同轴旋转,并可以外部调用的函数
- 关于让bootstrap3兼容ie8
- 博通的“交钥匙”策略
- 【iOS-Cocos2d游戏开发之十一】使用Box2d物理系统以及在cocos2d框架添加Box2d物理系统lib包的方法...
- dwz(jui)刷新当前dialog的方法
- Spring EL hello world实例
- 【转载】OpenCV(C++ 与 Python 的比较)与 MATLAB 的比较
- crontab wget命令定时执行thinkphp的控制器实现定时任务
- 反思相信谁的评价:一直的坚定的不移的相信自己对自己的评价 相信自己是多么的重要