欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL如何查看某個(gè)表所占空間大小

 更新時(shí)間:2025年05月16日 09:06:40   作者:數(shù)據(jù)知道  
在MySQL數(shù)據(jù)庫管理和優(yōu)化中,了解表所占用的空間大小是非常重要的,本文為大家整理了多種查看MySQL表空間大小的方法,需要的可以參考一下

一、使用SQL查詢查看表空間

1.1 查詢所有表的大?。ò〝?shù)據(jù)和索引)

SELECT 
    table_schema AS '數(shù)據(jù)庫名',
    table_name AS '表名',
    ROUND(data_length/1024/1024, 2) AS '數(shù)據(jù)大小(MB)',
    ROUND(index_length/1024/1024, 2) AS '索引大小(MB)',
    ROUND((data_length + index_length)/1024/1024, 2) AS '總大小(MB)',
    table_rows AS '行數(shù)'
FROM 
    information_schema.TABLES 
WHERE 
    table_schema NOT IN ('information_schema', 'mysql', 'performance_schema')
ORDER BY 
    (data_length + index_length) DESC;
SELECT round(data_length/1024/1024, 2) AS '數(shù)據(jù)大小(MB)', round(index_length/1024/1024, 2) AS '索引大小(MB)', round((data_length + index_length)/1024/1024, 2) AS '總大小(MB)'
FROM information_schema.TABLES 
where table_name = '表名';

1.2 查詢特定數(shù)據(jù)庫的表大小

SELECT 
    table_name AS '表名',
    ROUND(data_length/1024/1024, 2) AS '數(shù)據(jù)大小(MB)',
    ROUND(index_length/1024/1024, 2) AS '索引大小(MB)',
    ROUND((data_length + index_length)/1024/1024, 2) AS '總大小(MB)',
    table_rows AS '行數(shù)'
FROM 
    information_schema.TABLES 
WHERE 
    table_schema = '你的數(shù)據(jù)庫名'
ORDER BY 
    (data_length + index_length) DESC;

1.3 查詢單個(gè)表的詳細(xì)空間信息

SELECT 
    table_name AS '表名',
    engine AS '存儲(chǔ)引擎',
    ROUND(data_length/1024/1024, 2) AS '數(shù)據(jù)大小(MB)',
    ROUND(index_length/1024/1024, 2) AS '索引大小(MB)',
    ROUND((data_length + index_length)/1024/1024, 2) AS '總大小(MB)',
    ROUND(data_free/1024/1024, 2) AS '碎片空間(MB)',
    table_rows AS '行數(shù)',
    avg_row_length AS '平均行長度(字節(jié))',
    create_time AS '創(chuàng)建時(shí)間',
    update_time AS '更新時(shí)間'
FROM 
    information_schema.TABLES 
WHERE 
    table_schema = '你的數(shù)據(jù)庫名'
    AND table_name = '你的表名';

二、使用命令行工具查看表空間

2.1 使用mysql客戶端查詢

mysql -u用戶名 -p密碼 -e "SELECT table_name AS '表名', \
ROUND(data_length/1024/1024,2) AS '數(shù)據(jù)大小(MB)', \
ROUND(index_length/1024/1024,2) AS '索引大小(MB)', \
ROUND((data_length+index_length)/1024/1024,2) AS '總大小(MB)' \
FROM information_schema.TABLES \
WHERE table_schema='你的數(shù)據(jù)庫名' \
ORDER BY (data_length+index_length) DESC;"

2.2 查看物理文件大?。ㄟm用于MyISAM/InnoDB)

# 切換到MySQL數(shù)據(jù)目錄
cd /var/lib/mysql/你的數(shù)據(jù)庫名/

# 查看文件大小
ls -lh *.ibd *.frm *.MYD *.MYI

# 計(jì)算總大小
du -sh ./*

三、查看InnoDB表的空間使用詳情

3.1 查看InnoDB表空間狀態(tài)

SHOW TABLE STATUS FROM 你的數(shù)據(jù)庫名 LIKE '你的表名'\G

3.2 查看InnoDB引擎狀態(tài)(包含緩沖池等信息)

SHOW ENGINE INNODB STATUS\G

3.3 查詢InnoDB表空間文件信息

SELECT 
    FILE_NAME, 
    TABLESPACE_NAME, 
    ENGINE, 
    TOTAL_EXTENTS, 
    EXTENT_SIZE, 
    INITIAL_SIZE, 
    MAXIMUM_SIZE 
FROM 
    INFORMATION_SCHEMA.FILES 
WHERE 
    FILE_TYPE = 'DATAFILE';

四、高級(jí)空間分析工具

4.1 使用pt-diskstats(Percona工具包)

pt-diskstats --devices=/var/lib/mysql

4.2 使用pt-mysql-summary(Percona工具包)

pt-mysql-summary --user=用戶名 --password=密碼

4.3 使用mysqldumpslow分析表空間增長

mysqldumpslow -s t /var/log/mysql/mysql-slow.log

五、空間優(yōu)化相關(guān)查詢

5.1 查找碎片化嚴(yán)重的表

SELECT 
    table_schema AS '數(shù)據(jù)庫',
    table_name AS '表名',
    ROUND(data_free/1024/1024, 2) AS '碎片空間(MB)',
    ROUND((data_length + index_length)/1024/1024, 2) AS '總大小(MB)',
    ROUND((data_free/(data_length + index_length + data_free))*100, 2) AS '碎片率(%)'
FROM 
    information_schema.TABLES 
WHERE 
    table_schema NOT IN ('information_schema', 'mysql', 'performance_schema')
    AND data_free > 0
ORDER BY 
    data_free DESC
LIMIT 10;

5.2 查看表空間自動(dòng)擴(kuò)展設(shè)置

SELECT 
    table_name, 
    engine, 
    row_format, 
    create_options 
FROM 
    information_schema.TABLES 
WHERE 
    table_schema = '你的數(shù)據(jù)庫名';

六、注意事項(xiàng)

權(quán)限要求:查詢information_schema需要相應(yīng)的權(quán)限

數(shù)據(jù)準(zhǔn)確性:table_rows是估算值,特別是對于InnoDB表

存儲(chǔ)引擎差異:

• InnoDB表數(shù)據(jù)存儲(chǔ)在.ibd文件中(獨(dú)立表空間)或共享表空間中

• MyISAM表數(shù)據(jù)存儲(chǔ)在.MYD文件中,索引存儲(chǔ)在.MYI文件中

臨時(shí)表空間:臨時(shí)表和使用內(nèi)存引擎的表不會(huì)顯示在磁盤使用統(tǒng)計(jì)中

二進(jìn)制日志和事務(wù)日志:這些日志文件占用空間但不包含在表空間統(tǒng)計(jì)中

七、自動(dòng)化監(jiān)控腳本示例

#!/bin/bash

# MySQL表空間監(jiān)控腳本
DB_USER="用戶名"
DB_PASS="密碼"
DB_NAME="數(shù)據(jù)庫名"
OUTPUT_FILE="/tmp/mysql_table_sizes_$(date +%Y%m%d).csv"

echo "表名,數(shù)據(jù)大小(MB),索引大小(MB),總大小(MB),行數(shù),碎片空間(MB)" > $OUTPUT_FILE

mysql -u$DB_USER -p$DB_PASS -e "SELECT \
    CONCAT(table_name, ',', \
    ROUND(data_length/1024/1024, 2), ',', \
    ROUND(index_length/1024/1024, 2), ',', \
    ROUND((data_length + index_length)/1024/1024, 2), ',', \
    table_rows, ',', \
    ROUND(data_free/1024/1024, 2)) \
FROM information_schema.TABLES \
WHERE table_schema = '$DB_NAME' \
ORDER BY (data_length + index_length) DESC;" >> $OUTPUT_FILE

???????echo "報(bào)告已生成: $OUTPUT_FILE"

通過以上方法,您可以全面了解MySQL數(shù)據(jù)庫中各個(gè)表的空間占用情況,為數(shù)據(jù)庫優(yōu)化和維護(hù)提供數(shù)據(jù)支持。

到此這篇關(guān)于MySQL如何查看某個(gè)表所占空間大小的文章就介紹到這了,更多相關(guān)MySQL查看表空間大小內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文深入理解MySQL中的UTF-8與UTF-8MB4字符集

    一文深入理解MySQL中的UTF-8與UTF-8MB4字符集

    在全球化的今天,數(shù)據(jù)的存儲(chǔ)與處理需要支持多種語言與字符集,對于 Web 應(yīng)用程序和數(shù)據(jù)庫系統(tǒng)來說,字符集的選擇尤為重要,特別是在處理包含多種語言字符(如中文、阿拉伯文、表情符號(hào)等)的系統(tǒng)中,本文將深入探討 MySQL 中的兩個(gè)常見字符集:UTF-8 和 UTF-8MB4
    2024-11-11
  • mysql中mysql-bin.000001是什么文件可以刪除嗎

    mysql中mysql-bin.000001是什么文件可以刪除嗎

    這篇文章主要介紹了mysql中mysql-bin.000001是什么文件可以刪除嗎,需要的朋友可以參考下
    2019-05-05
  • MySQL開啟Slow慢查詢的方法示例

    MySQL開啟Slow慢查詢的方法示例

    這篇文章主要給大家介紹了關(guān)于MySQL開啟Slow慢查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò)問題

    MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò)問題

    本文主要介紹了MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • MySQL的cpu使用率100%的問題排查流程

    MySQL的cpu使用率100%的問題排查流程

    線上mysql服務(wù)器經(jīng)常性出現(xiàn)cpu使用率100%的告警, 因此本文整理一下排查該問題的常規(guī)流程,文中通過代碼示例講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2025-02-02
  • 查看連接mysql的IP地址的實(shí)例方法

    查看連接mysql的IP地址的實(shí)例方法

    在本篇文章里小編給大家分享的是一篇關(guān)于查看連接mysql的IP地址的實(shí)例方法,有需要的朋友們可以參考下。
    2020-10-10
  • 總結(jié)MySQL修改最大連接數(shù)的兩個(gè)方式

    總結(jié)MySQL修改最大連接數(shù)的兩個(gè)方式

    最大連接數(shù)是可以通過mysql進(jìn)行修改的,mysql數(shù)據(jù)庫修改最大連接數(shù)常用有兩種方法,今天我們分析一下這兩種方法之間的特點(diǎn)和區(qū)別,以便我們能更好的去維護(hù)mysql。下面我們來看一下mysql修改最大連接數(shù)的方法,希望文章能夠幫助到各位朋友。
    2016-08-08
  • mysql中的臨時(shí)表如何使用

    mysql中的臨時(shí)表如何使用

    這篇文章主要介紹了mysql中的臨時(shí)表如何使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • MySQL 8中新增的這三大索引 隱藏、降序、函數(shù)

    MySQL 8中新增的這三大索引 隱藏、降序、函數(shù)

    這篇文章主要介紹了MySQL 8.x版本中新增的三大索引 隱藏索引、降索引序、函數(shù)索引,如果文章對你有點(diǎn)幫助,小伙伴們點(diǎn)贊、收藏、評論、分享走起呀
    2021-09-09
  • Mysql事務(wù)隔離級(jí)別原理實(shí)例解析

    Mysql事務(wù)隔離級(jí)別原理實(shí)例解析

    這篇文章主要介紹了Mysql事務(wù)隔離級(jí)別原理實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評論