首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大型站点上的拆分数据库?

大型站点上的拆分数据库?
EN

WordPress Development用户
提问于 2015-10-28 18:19:45
回答 2查看 2K关注 0票数 0

在单个站点上拆分大型数据库的最佳方法是什么,而不是多站点wp安装?HyperDB可能就是这样做的(根据活动安装,只有不到10位站长设法想出了如何安装它)。

目前网站有约35万个帖子,它是在良好的VPS。网站在正面快速运行,打开页面,浏览.但在后端发布新帖子时,它会减速,每天都会增加大量新帖子。

站点具有这个permalink结构:

Sitename.com/年/月/日/postid/ post名称实际上只是编辑了新的帖子,一旦发布,文章就不会被更改。

你知道如何加快数据库的编写,或者更好地在一个数据库中发布文章,并为将来的文章建立新的数据库吗?

更新:

第一次安装:安装在带有新数据库的站点根目录中,没有旧的、已发布的帖子,只供以后的文章使用。Permalink结构是这样的:

Sitename.com/年份/月/日/postid/post-name

第二次安装:在站点根目录中创建文件夹"2015“,并在该文件夹中安装WP,从根开始安装原始WP的sql数据库,直到9月底,所有帖子只更改为permalink:

sitename.com/month/day/postid/post-name

它将提供与以前相同的URL结构(因为WP位于子文件夹“2015”中):

Sitename.com/年份/月/日/postid/post-name

当我需要每年拆分一次数据库时(例如,2014年),这种方法是有效的。对于过去的每一年,我可以有一个文件夹命名为过去一年和与WP安装在该文件夹中的数据库与过去一年的帖子。

这样,当访问者尝试打开URL时,例如:

Sitename.com/2014/01/01/post这里

服务器将首先在子文件夹/2014/和有WP安装,将返回该帖子。

问题:当今年的数据库太大时,我试图将本年度的帖子分成两个数据库,一个是从今年到9月底发布的文章,另一个是未来的帖子。

我有这个:

在站点根目录中,我有"2015“文件夹,其中安装了带有permalink结构的WP:

sitename.com/month/day/postid/post-name

在根WP安装中,使用permalink结构:

Sitename.com/年份/月/日/postid/post-name

如果我试图打开URL:

Sitename.com/2015/09/01/post这里

服务器将签入文件夹"2015“和WP安装从该文件夹将返回9月1日,它的工作良好。

如果我今天在WP站点根目录中发布新的帖子,它将有这样的URL :sitename.com/2015/10/29/ post -name-这里

如果我试图打开它,服务器会在文件夹"2015“内查看WP安装,但是这个安装直到9月底才有帖子,我得到404。在此之后,服务器将不会查看WP在站点根目录中的安装。

问题:

如何使服务器在WP安装中查看"2015“子文件夹中的安装,如果该安装中没有post,则在站点根目录中查找WP安装中的帖子?

EN

回答 2

WordPress Development用户

发布于 2015-10-29 12:16:02

我在一个网站上有一个类似的问题,wp_posts中有100 K行,wp_postmeta中有500 K行。

事实上,当您开始发布大量文章时,WordPress在管理中有一些非常慢的查询。

找到瓶颈的最好方法是使用调试条插件。

您可能会发现一些疯狂的缓慢查询,如下所示:

代码语言:javascript
复制
SELECT DISTINCT meta_key
FROM lc_postmeta
WHERE meta_key NOT BETWEEN '_' AND '_z'
HAVING meta_key NOT LIKE '\\_%'
ORDER BY meta_key
LIMIT 30

代码语言:javascript
复制
SELECT ID
FROM lc_posts
WHERE post_type = 'attachment'
AND post_mime_type LIKE 'audio%'
LIMIT 1

代码语言:javascript
复制
SELECT ID
FROM lc_posts
WHERE post_type = 'attachment'
AND post_mime_type LIKE 'video%'
LIMIT 1

不幸的是,这些都是已知的问题,但是您可以调整它们以更快地加载。

例如,我只是删除了我没有使用的自定义字段metabox,并获得了50%的加载时间。

代码语言:javascript
复制
add_action( 'admin_menu' , 'pu_remove_post_custom_fields' );

function pu_remove_post_custom_fields() {
    remove_meta_box( 'postcustom' , 'post' , 'normal' ); 
}

我不确定将您的DB拆分成多个读取实例是否有帮助。

票数 0
EN

WordPress Development用户

发布于 2015-10-29 12:40:18

如果不失去搜索、rss、标签、类别等功能,就不能分割DB。如果你不关心它,那么你需要把你的网站转换成一个网络,每年或者甚至一个月都有一个网站。

一旦你安排好网络,就有各种各样的方法从网络的所有站点聚合内容,你可以根据你所关心的特性来实现。

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/206916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档