大型WordPress数据库

时间:2019-01-24 21:46:26

标签: database wordpress mariadb multi-database

我的数据库大小超过10GB,并且降低了网站速度。我想将其拆分并将这些DB分离到专用服务器。我正在使用MariaDB。

如何拆分WordPress数据库?

2 个答案:

答案 0 :(得分:3)

在WPSE上查看以下答案:https://wordpress.stackexchange.com/questions/2825/wordpress-sharding-which-multi-db-plugin-to-use

也就是说,大型数据库本质上不是一件坏事。 不好,但是未优化的数据库膨胀的数据库(许多插件只是转储数据(通常是postmeta或options表),和未优化的数据库查询

我将首先使用一些DB Optimizations插件,或者只是手动对其进行挖掘。确保您的选项表尽可能简洁,并确保删除了所有孤儿数据(例如不再具有父帖子并且在任何地方都未引用的媒体图像)。我已经看到,插件在options表中留下了数百兆字节的所有价值,但无用的数据。并且,当在每个页面请求上加载该内容时,该网站都会变成类似糖蜜的状态。

从纯粹的轶事角度来看,我目前正在研究一个缓慢//肿的十年历史的网站的基础重构。它使用了大量的插件,数据库在众多表中都有大量重复的信息,有许多元查询(没有索引或关键字,因此在大型站点上的运行速度非常慢),并且存在存储在选项表中的大量无用/过时的选项。

新站点充满了100%可行的测试数据,并且数据库现在处于大约3或4个演出的位置。事实是,我的表已经过优化,列得到了适当的索引,甚至我还获得了自定义的关系发布表,将发布类型链接在一起。我在那里大约有450,000个各种帖子类型的帖子,并且使用带有$wpdb类的简单查询,它可以在几分之一秒内筛选和加载数十个或数百个帖子,而不会消耗大量内存。 / p>

瘦弱的是,在考虑拆分/分片数据库之前,您几乎应该确定对数据库进行优化整理

另一种选择是着眼于改善硬件,即拥有一台主机和一台数据库机,从本质上提高性能,因为每台机器都可以针对手头的任务进行优化,而不共享不需要的资源

这是我的一个请求的简单屏幕截图。这是一个页面,该页面从表中加载200个自定义帖子类型,其中包含450,000条记录。每种自定义帖子类型都与0-20种其他帖子类型相关,一种甚至与1500种其他帖子类型相关-尽管尚未完全优化,但它几乎可以立即加载。

Sample screenshot

答案 1 :(得分:1)

您能否检查一下DB内部的内容,因为通常10GB DB并不是很常见。除非您有大量的帖子或评论,否则这非常不寻常。检查哪个表包含最多的空间并检查表内部。

还要检查wp_users和wp_comments表是否占用的最大空间,然后我确定它具有垃圾邮件发送功能!

只需检查用户并删除垃圾邮件评论即可。由于数据库大小太大,可能这不是一个好的解决方案。