快速導(dǎo)出 TiDB 統(tǒng)計信息

目的

在使用 TiDB 的過程中,經(jīng)常會遇到一些慢 SQL 的問題,當(dāng)需要尋求 TIDB 原廠協(xié)助,或者在官方論壇發(fā)帖的時候,大概率需要收集以下信息:

    1. 版本信息:select tidb_version();
    1. 表結(jié)構(gòu): show create table table_name;
    1. 表的統(tǒng)計信息: curl http://tidb_ip:status_port/stats/dump/db_name/table_name >table_name.json (默認(rèn)端口為 10080)
    1. 執(zhí)行 SQL 和執(zhí)行計劃

統(tǒng)計信息相關(guān)官方介紹: 統(tǒng)計信息簡介

為了快速拿到相關(guān)表的統(tǒng)計信息,表結(jié)構(gòu),并且方便官方快速導(dǎo)入表結(jié)構(gòu)和統(tǒng)計信息。因此寫了相關(guān)腳本,進行一鍵導(dǎo)出導(dǎo)入。

注意: 導(dǎo)入統(tǒng)計信息的時候,需要創(chuàng)建對應(yīng)的庫,否則導(dǎo)入會報錯。

腳本書寫

功能:

  1. 可以導(dǎo)出整個集群的表結(jié)構(gòu)和統(tǒng)計信息

  2. 可以指定庫導(dǎo)出表結(jié)構(gòu)和統(tǒng)計信息

  3. 可以指定表進行導(dǎo)出相關(guān)表結(jié)構(gòu)和統(tǒng)計信息

會生成一個壓縮文件,其中 schema.sql 中是創(chuàng)建表/庫語句,和 load 統(tǒng)計信息語句。

用法

./Stats_dump.py -h

usage: Stats_dump.py [-h] [-tu TIDB] [-H MYSQL] [-u USER] [-p PASSWORD]

                     [-d DATABASE] [-t TABLES]

Export statistics and table structures

optional arguments:

  -h, --help   show this help message and exit

  -tu TIDB     tidb status url, default: 127.0.0.1:10080

  -H MYSQL     Database address and port, default: 127.0.0.1:4000

  -u USER      Database account, default: root

  -p PASSWORD  Database password, default: null

  -d DATABASE  Database name, for example: test,test1, default: None

  -t TABLES    Table name (database.table), for example: test.test,test.test2, default: None
  • 參數(shù)說明

    • -tu 后填 TIDB 的 IP 地址和 status 端口,端口默認(rèn)為 10080
    • -H 后填 TiDB 的 IP 地址和連接端口,端口默認(rèn)是 4000
    • -u 為數(shù)據(jù)庫登錄賬戶
    • -p 為數(shù)據(jù)庫登錄密碼
    • -d 為需要導(dǎo)出統(tǒng)計信息的庫,如果使用該參數(shù),就是代表將會導(dǎo)出對應(yīng)庫所有表的統(tǒng)計信息和表結(jié)構(gòu)。比如填 -d test1,test2,就是講 test1test2 庫下的表的統(tǒng)計信息和表結(jié)構(gòu)導(dǎo)出
    • -t 導(dǎo)出對應(yīng)表的統(tǒng)計信息、表結(jié)構(gòu)。需要注意格式:database_name.table_name。比如填 -t test1.t1,test2.t2,代表將會導(dǎo)出 test1 庫 t1 表和 test2 庫 t2 表的表結(jié)構(gòu)和統(tǒng)計信息。
  • 注意

    • 如果 -d-t 都沒有指定,默認(rèn)是導(dǎo)出除了系統(tǒng)表以外所有表的統(tǒng)計信息和表結(jié)構(gòu)。
    • 不會導(dǎo)出 "INFORMATION_SCHEMA", "PERFORMANCE_SCHEMA","mysql", "default" 庫的表結(jié)構(gòu)和統(tǒng)計信息。

腳本鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 6,329評論 0 10
  • 接下來的一些內(nèi)容,我們需要提前學(xué)一些簡單的sql語句,方便大家理解接下來的知識。 DDL—數(shù)據(jù)定義語言(Creat...
    不排版閱讀 475評論 0 1
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,964評論 0 9
  • 前些日子呢,你們都看過一篇好萌好有愛的推送吧,大意是一個法國畫家爸爸根據(jù)孩子幼稚的畫筆改成天馬行空的驚艷畫稿。對對...
    猶豫的More閱讀 467評論 0 2
  • 今天我們來分析一下,Activity啟動的流程。 如圖所示:我們來對Activity 傳遞給Instrumenta...
    四大爺閱讀 254評論 0 0

友情鏈接更多精彩內(nèi)容