如何计算WordPress单个自定义文章类型(Books)的存储空间?
计算单篇Book文章占用的存储空间
计算单篇文章的存储空间需要统计数据库存储和服务器媒体文件存储两部分,以下是具体操作方法:
一、统计数据库占用空间
方法1:使用WP CLI查询
获取文章本身及关联元数据的大小
执行以下命令(替换[POST_ID]为你的Book文章ID):# 查询文章主数据大小 wp db query "SELECT SUM(LENGTH(post_content) + LENGTH(post_title) + LENGTH(post_excerpt)) FROM wp_posts WHERE ID = [POST_ID];" # 查询文章元数据总大小 wp db query "SELECT SUM(LENGTH(meta_key) + LENGTH(meta_value)) FROM wp_postmeta WHERE post_id = [POST_ID];"将两个结果相加,得到文章在数据库中的基础占用字节数。
统计关联附件(图片)的数据库存储
Book的图片属于attachment类型文章,post_parent指向目标文章ID,执行:# 查询所有关联附件的主数据总大小 wp db query "SELECT SUM(LENGTH(post_content) + LENGTH(post_title) + LENGTH(post_excerpt)) FROM wp_posts WHERE post_parent = [POST_ID] AND post_type = 'attachment';" # 查询所有关联附件的元数据总大小 wp db query "SELECT SUM(LENGTH(meta_key) + LENGTH(meta_value)) FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_parent = [POST_ID] AND post_type = 'attachment');"将这两个结果加入数据库总大小中。
方法2:直接操作MySQL终端
登录数据库后执行以下SQL(替换[POST_ID]):
SELECT -- 文章主数据+元数据 (SELECT SUM(LENGTH(post_content)+LENGTH(post_title)+LENGTH(post_excerpt)) FROM wp_posts WHERE ID=[POST_ID]) + (SELECT SUM(LENGTH(meta_key)+LENGTH(meta_value)) FROM wp_postmeta WHERE post_id=[POST_ID]) + -- 附件主数据+元数据 (SELECT SUM(LENGTH(post_content)+LENGTH(post_title)+LENGTH(post_excerpt)) FROM wp_posts WHERE post_parent=[POST_ID] AND post_type='attachment') + (SELECT SUM(LENGTH(meta_key)+LENGTH(meta_value)) FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_parent=[POST_ID] AND post_type='attachment')) AS total_db_bytes;
返回的total_db_bytes即为该文章在数据库中的总占用字节数。
二、统计服务器媒体文件占用空间
方法1:结合WP CLI与服务器命令
获取所有关联附件的文件路径:
wp post list --post_type=attachment --post_parent=[POST_ID] --field=guid | awk -F 'wp-content/uploads/' '{print "/var/www/html/wp-content/uploads/"$2}'注意:替换
/var/www/html/为你的WordPress站点根目录路径。统计文件及缩略图总大小:
# 导出路径到临时文件 wp post list --post_type=attachment --post_parent=[POST_ID] --field=guid | awk -F 'wp-content/uploads/' '{print "/var/www/html/wp-content/uploads/"$2}' > temp_paths.txt # 统计每个文件所在目录的大小(含缩略图) cat temp_paths.txt | xargs dirname | sort -u | xargs du -csh | grep total最后一行的数值即为所有关联图片(含缩略图)的总占用空间。
方法2:直接操作文件系统
- 定位WordPress上传目录(默认
wp-content/uploads/,可根据实际配置调整)。 - 通过数据库
wp_posts表的guid字段获取附件文件名,在上传目录中找到对应文件及所在文件夹。 - 用
du -sh [文件夹路径]命令统计单个附件及缩略图的总大小,汇总所有关联图片的大小。
三、总存储空间计算
将数据库总大小与媒体文件总大小相加,就是单篇Book文章的实际占用存储空间。之后用该数值乘以总Book数量,再乘以1.2~1.5的预留系数(覆盖缩略图、数据库冗余等额外占用),即可得到所需的总存储容量,用于服务器扩容参考。
内容的提问来源于stack exchange,提问作者Jason Is My Name
相关产品推荐
相关产品推荐

