最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL如何查看某個表所占空間大小

 更新時間: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 查詢單個表的詳細(xì)空間信息

SELECT 
    table_name AS '表名',
    engine 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)',
    ROUND(data_free/1024/1024, 2) AS '碎片空間(MB)',
    table_rows AS '行數(shù)',
    avg_row_length AS '平均行長度(字節(jié))',
    create_time AS '創(chuàng)建時間',
    update_time AS '更新時間'
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 查看物理文件大小(適用于MyISAM/InnoDB)

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

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

# 計算總大小
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';

四、高級空間分析工具

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 查看表空間自動擴(kuò)展設(shè)置

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

六、注意事項

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

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

存儲引擎差異:

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

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

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

二進(jìn)制日志和事務(wù)日志:這些日志文件占用空間但不包含在表空間統(tǒ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 "報告已生成: $OUTPUT_FILE"

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

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

相關(guān)文章

  • MySQL通過Binlog實現(xiàn)數(shù)據(jù)備份和恢復(fù)

    MySQL通過Binlog實現(xiàn)數(shù)據(jù)備份和恢復(fù)

    Binlog (Binary Log) 就是 MySQL 的錄像機(jī),它記錄了數(shù)據(jù)庫里所有的修改操作(比如增刪改),按時間順序排列,這就好比你把游戲里所有改變數(shù)據(jù)的操作都錄了下來,存成了一部連續(xù)的電影,所以本文給大家介紹了MySQL如何通過Binlog實現(xiàn)數(shù)據(jù)備份和恢復(fù)
    2026-01-01
  • MySQL自定義order by排序規(guī)則的示例詳解

    MySQL自定義order by排序規(guī)則的示例詳解

    這篇文章主要介紹了MySQL自定義order by排序規(guī)則的示例,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-07-07
  • 定時備份mysql, 定時切割nginx access log的方法

    定時備份mysql, 定時切割nginx access log的方法

    定時備份mysql, 定時切割nginx access log的方法,需要的朋友可以參考下。
    2011-09-09
  • MYSQL中文亂碼問題的解決方案

    MYSQL中文亂碼問題的解決方案

    mysql是我們項目中非常常用的數(shù)據(jù)型數(shù)據(jù)庫,但是因為我們需要在數(shù)據(jù)庫保存中文字符,所以經(jīng)常遇到數(shù)據(jù)庫亂碼情況這篇文章主要給大家介紹了關(guān)于MYSQL中文亂碼問題的解決方案,需要的朋友可以參考下
    2022-06-06
  • MySQL安全設(shè)置圖文教程

    MySQL安全設(shè)置圖文教程

    MySQL安全設(shè)置,跟mssql差不多都是以普通用戶權(quán)限運(yùn)行mysql。其它的也需要注意下。
    2011-01-01
  • CentOS?7/8/9上安裝?MySQL?8.0+的方法完整指南

    CentOS?7/8/9上安裝?MySQL?8.0+的方法完整指南

    本文提供兩種在?CentOS?7/8/9?系統(tǒng)上安裝?MySQL?8.0?或更高版本的官方推薦方法,即使用?Yum?包管理器(適合新手)?和?手動部署通用二進(jìn)制包(適合高級用戶),大家可以根據(jù)需要進(jìn)行選擇
    2025-11-11
  • MySQL 字符串拆分實例(無分隔符的字符串截取)

    MySQL 字符串拆分實例(無分隔符的字符串截取)

    這篇文章主要介紹了MySQL 字符串拆分實例(無分隔符的字符串截取),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • mysql開啟遠(yuǎn)程連接(mysql開啟遠(yuǎn)程訪問)

    mysql開啟遠(yuǎn)程連接(mysql開啟遠(yuǎn)程訪問)

    開啟MYSQL遠(yuǎn)程連接權(quán)限的方法,大家參考使用吧
    2013-12-12
  • MySQL數(shù)據(jù)庫頁與索引示例詳解

    MySQL數(shù)據(jù)庫頁與索引示例詳解

    文章主要內(nèi)容是詳細(xì)介紹了MySQL索引的工作原理和使用方法,文章介紹了如何通過執(zhí)行計劃查看SQL是否使用了索引,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-11-11
  • MySQL查詢優(yōu)化:連接查詢排序limit(join、order by、limit語句)介紹

    MySQL查詢優(yōu)化:連接查詢排序limit(join、order by、limit語句)介紹

    兩張表連接查詢并limit,SQL效率很高,但是加上order by以后,語句的執(zhí)行時間變的巨長,效率巨低,接下來為大家介紹下連接查詢排序limit
    2013-04-04

最新評論

五峰| 教育| 黎平县| 黔西县| 祁阳县| 禹城市| 黔东| 安国市| 晋江市| 镶黄旗| 普陀区| 弥渡县| 银川市| 九龙县| 瑞昌市| 汽车| 滕州市| 宁德市| 教育| 航空| 常德市| 合作市| 横峰县| 陆川县| 瓦房店市| 漠河县| 神农架林区| 长白| 乌鲁木齐县| 连城县| 武清区| 新营市| 开封县| 新昌县| 临颍县| 南汇区| 乳源| 凤庆县| 晴隆县| 稷山县| 扶绥县|