91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一個Shell小腳本精準統計Mysql每張表的行數

發布時間:2020-07-17 20:11:18 來源:網絡 閱讀:3320 作者:實踐哥 欄目:系統運維

前言

對于開發或者運維人員來說,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
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

固阳县| 重庆市| 寿阳县| 南昌县| 龙川县| 诸城市| 大化| 襄樊市| 洪江市| 仙游县| 德江县| 平阳县| 泸水县| 建平县| 民丰县| 合肥市| 巫溪县| 台东市| 大石桥市| 梓潼县| 兴义市| 元阳县| 华宁县| 综艺| 忻州市| 星座| 白银市| 中西区| 云南省| 登封市| 太仆寺旗| 五家渠市| 八宿县| 潍坊市| 广西| 张家界市| 江陵县| 花莲县| 亳州市| 上虞市| 仁怀市|