首页 > 解决方案 > 大量自定义分类 WordPress 冻结数据库和整个网站

问题描述

我在我的 WordPress 数据库中导入了 10 万个自定义分类术语。我已经分层导入了 Country -> State -> Cities。这样,我的数据库表术语(20 mb)和分类术语(15mb)变得如此之大,以至于我的整个网站和管理面板都崩溃了,甚至无法加载我网站的单个页面。我也尝试过 elasticPress,Jetpack 对我的这个问题没有帮助。基本上我想将至少 5 个国家及其州和城市导入到我的数据库中,因此用户可以使用向下钻取下拉方法选择它的位置。你能帮帮我吗?我可以缓存这个或者我怎样才能在不影响mysql数据库性能的情况下做到这一点?我可以给你更多关于它的信息。请问有什么问题。谢谢你。PS:我一直在 CloudWays 上托管我的这个网站

标签: mysqlwordpressperformancetaxonomycustom-taxonomy

解决方案


WP 使用 EAV(实体-属性-值)模式模型。这相当笨拙,并且不能很好地扩展到“数千”。

但是,通过改进 WP 中的“元”模式可以部分修复:http: //mysql.rjweb.org/doc.php/index_cookbook_mysql#speeding_up_wp_postmeta

“真正的”解决方法是使用属性列设计您自己的模式,而不是间接找到它们。

没有真正的充分理由让 Country->State->City 成为层次结构。具有这 3 列(可能还有其他一些东西)的平面表更快且不那么笨拙。其他分类法可能需要分层存储。你想讨论一个具体的。

MySQL 8 有一个新特性:CTE。它们使编写查询以遍历层次结构变得更加容易。


推荐阅读