YOLOv5模型训练避坑指南:从环境配置到参数调优,我踩过的雷你别再踩了
2026/4/1 13:36:50
在 MySQL InnoDB 中,“页”(Page)是存储的最小物理单位(默认 16KB),要查看数据库总页数,需从表空间文件(.ibd)或InnoDB 内部元数据获取。
INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES(推荐)SELECTNAMEAStablespace_name,FILE_SIZE/16384AStotal_pages,-- 16KB = 16384 字节ALLOCATED_SIZE/16384ASallocated_pagesFROMINFORMATION_SCHEMA.INNODB_SYS_TABLESPACESWHERENAME='your_db/your_table';-- 查看单表-- WHERE NAME LIKE 'your_db/%'; -- 查看整个数据库FILE_SIZE:表空间文件实际大小(字节)ALLOCATED_SIZE:InnoDB 实际分配的空间(可能小于文件大小)✅优点:直接、准确,包含系统表空间(如
mysql.ibd)
# Linux/macOSls-l /var/lib/mysql/your_db/your_table.ibd# Windows (PowerShell)Get-Item"C:\ProgramData\MySQL\MySQL Server 8.0\Data\your_db\your_table.ibd"your_table.ibd = 33,554,432 字节→33554432 / 16384 = 2048 页⚠️注意:
此方法包含未使用的空闲页(InnoDB 预分配空间)
INFORMATION_SCHEMA.TABLES(仅数据页估算)SELECTTABLE_NAME,DATA_LENGTH/16384ASdata_pages,INDEX_LENGTH/16384ASindex_pagesFROMINFORMATION_SCHEMA.TABLESWHERETABLE_SCHEMA='your_db'ANDTABLE_NAME='your_table';DATA_LENGTH:聚簇索引(数据)占用字节INDEX_LENGTH:二级索引占用字节SELECTSUM(FILE_SIZE)/16384AStotal_pagesFROMINFORMATION_SCHEMA.INNODB_SYS_TABLESPACESWHERENAMENOTLIKE'innodb_%'-- 排除系统表空间ANDNAMENOTLIKE'mysql/%';SELECTSUM(FILE_SIZE)/16384AStotal_pagesFROMINFORMATIONISTICS.INNODB_SYS_TABLESPACES;| 术语 | 说明 |
|---|---|
| 数据页(Data Page) | 存储行记录的页(聚簇索引) |
| 索引页(Index Page) | 存储二级索引的页 |
| Undo 页 | 存储回滚日志的页(独立表空间) |
| 系统页 | 存储元数据(如 FSP_HDR、IBUF_BITMAP) |
| 空闲页 | 已分配但未使用的页(InnoDB 预留) |
💡总页数 = 数据页 + 索引页 + Undo 页 + 系统页 + 空闲页
INNODB_SYS_TABLESPACES:-- 计算空闲页占比SELECT(FILE_SIZE-ALLOCATED_SIZE)/FILE_SIZEASfree_ratioFROMINFORMATION_SCHEMA.INNODB_SYS_TABLESPACESWHERENAME='your_db/your_table';OPTIMIZE TABLE回收空间TABLES.DATA_LENGTH:INNODB_SYS_TABLESPACES.FILE_SIZE / 16384TABLES.DATA_LENGTH / 16384(近似)💡一句话:
InnoDB 的页是 16KB 的积木,
要数清总数,得看它真实的物理占地,而非逻辑估算。