mysql - 大量自定义分类 WordPress 冻结数据库和整个网站
问题描述
我在我的 WordPress 数据库中导入了 10 万个自定义分类术语。我已经分层导入了 Country -> State -> Cities。这样,我的数据库表术语(20 mb)和分类术语(15mb)变得如此之大,以至于我的整个网站和管理面板都崩溃了,甚至无法加载我网站的单个页面。我也尝试过 elasticPress,Jetpack 对我的这个问题没有帮助。基本上我想将至少 5 个国家及其州和城市导入到我的数据库中,因此用户可以使用向下钻取下拉方法选择它的位置。你能帮帮我吗?我可以缓存这个或者我怎样才能在不影响mysql数据库性能的情况下做到这一点?我可以给你更多关于它的信息。请问有什么问题。谢谢你。PS:我一直在 CloudWays 上托管我的这个网站
解决方案
WP 使用 EAV(实体-属性-值)模式模型。这相当笨拙,并且不能很好地扩展到“数千”。
但是,通过改进 WP 中的“元”模式可以部分修复:http: //mysql.rjweb.org/doc.php/index_cookbook_mysql#speeding_up_wp_postmeta
“真正的”解决方法是使用属性列设计您自己的模式,而不是间接找到它们。
没有真正的充分理由让 Country->State->City 成为层次结构。具有这 3 列(可能还有其他一些东西)的平面表更快且不那么笨拙。其他分类法可能需要分层存储。你想讨论一个具体的。
MySQL 8 有一个新特性:CTE。它们使编写查询以遍历层次结构变得更加容易。
推荐阅读
- javascript - 按iso字符串降序排序不起作用
- asp.net-mvc - 同一区域同名的控制器
- spring-boot - Spring Boot - 无法处理 IllegalStateException
- javascript - 如何在 JS 正则表达式中表示“iPhone10,3”、“iPhone10,6”、“iPhone11,2”、“iPhone11,4”、“iPhone11,8”中的任何一个
- typescript - 如何使用映射类型获取对象类型的可选部分?
- machine-learning - 如何使用python通过word2vec转换文本文件
- r - 如何保持图中点的相对大小相等?
- amazon-web-services - Slack 在使用 Amazon Lex 设置事件订阅 URL 时返回错误
- java - 五中之大
- python - 不兼容的形状:[14250,10] 与 [15000,10]