WP_POSTS表:安全删除未使用的列以节省数据库存储

时间:2015-12-22 作者:Ypages Onine

我在谷歌上搜索了一下,但没有找到任何东西。我想删除wordpress wp\\U posts表中未使用的列,以保存数据库存储。。。

我知道如果表列为空,它不会影响我的空间,但维护表可以提高我的网站性能!!!,目前23 columns 在我的wp\\u posts表中。。。

我有1,200,000 Rows 在我的wp\\U posts表中,大小为:1.2 GB, 它将增加到30,000,000 Rows 在2个月内。。。

有许多字段不在我的使用中,所以我如何删除它们,这样就不会影响我的wp项目??

我担心如果我删除任何专栏,可能我的网站将无法在任何阶段工作。

Columns that i want to delete :

post_date
post_date_gmt
ping_status
post_password
to_ping 
pinged
post_content_filtered

//more if possible, i will update my posts, but i dont need last modify date.
post_modified 
post_modified_gmt

enter image description here

提前感谢:)

4 个回复
SO网友:Mark Kaplun

如果您更改了DB结构,那么实际上您将不再运行wordpress,而是您的分支。这并不总是一件消极的事情,只要你知道一旦你这么做了,就不能保证任何插件、主题或未来的wordpress版本会与你的DB方案一起工作。

TL;DR

非常糟糕的主意。

SO网友:Pieter Goosen

在我的wp\\u posts表中有1200000行,大小为1.2 GB,在2个月内将增加到30000000行。。。

这完全是疯了。我真的不知道这是什么原因,但是30 MILLION 帖子太疯狂了。你真的需要去坐下来,想想你在做什么,你的目标是什么,说实话,这里有些监狱是非常错误的。

我真的不知道任何类型的普通购买的主机是否有足够的资源来运行一个数据库如此庞大的站点。你有自己的超级服务器吗?

简单地删除WordPress创建的表和列在这里绝对不是一个选项,无论如何,删除未使用的列和表不会显著提高您在站点上的性能。哎哟,你可能只是打碎了一些其他东西,这会让你的头再次撞到山上。

解决方案

重新考虑你的网站的完整计划,停止一切疯狂;-)

SO网友:fuxia

删除这些列不会对表大小产生太大影响。但它会的break the regular WordPress queries, 因为SQL写查询和读查询正在引用这些列。如果没有,SQL将无效,您只会得到一个MySQL错误,而不是结果。

1.2 GB不是那么多。正常的InnoDB表可以容纳up to 64 TB:

最大表空间大小为40亿个数据库页(64TB)。这也是表的最大大小。

您的索引可能有问题。下面是如何分析它们的一个很好的解释:How to calculate a specific InnoDB index size?

您可能希望在导入期间关闭索引创建,或完全更改现有索引。

另一种选择是partitioning, 使用多个逻辑上看起来像一个的物理表。不知道WordPress如何处理这个问题,因为limitations.

或者考虑为您的数据使用一个完全独立的表。将这些内容纳入常规查询并不难。有许多过滤器可以更改数据库查询,您可能会找到一个适合您需要的过滤器。

SO网友:TheDeadMedic

除了其他人提到的以外,你的意图也是有缺陷的——如果你想节省空间,这不是解决问题的办法。

  • post_date - 8字节post_date_gmt - 8字节ping_status - 8字节(最多-open, closedinherit)
  • post_modified - 8字节post_modified_gmt - 8字节
提及的其他字段可能为0字节(在设置>讨论中关闭ping)。

每行40字节*1.2m行=~ 40MB=~ 1.2GB的3.5%

换言之,您的储蓄如此微不足道,根本不值得实施(至少可以说这是一种痛苦)。

如果你想在一次安装中安装那么多帖子,那么更好的托管就是答案。