我有一个在 WordPress 上运行的电子商务商店(同时使用 WooCommerce) - 我们已经运营该网站大约 4 年了,在这段时间里,我们的网站在销售和客户注册方面都有了很大的增长,这很好,但缺点是,我们的网站在很多方面都变得非常慢(这包括执行任务,例如从商店后端编辑产品,以及从我们的客户如何浏览我们的网站并完成他们的订单的角度来看)。
我认为这里的挑战是,随着时间的推移,大量的 postmeta 数据和 usermeta 数据已经在 MySQL 数据库中积累,结果导致了性能的真正下降,从而导致我们网站在加载时间方面出现多个问题。
确切地说:
- 我们的 postmeta 数据库表由约 3,554,802 行组成
- 我们的 usermeta 数据库表由 ~2,759,005 行组成
- 最后,woocommerce_order_itemmeta 由~1,343,448 行组成,就行数而言,我们数据库中存在的许多其他表通常在六位数范围内。
虽然我知道我们可以继续删除旧数据(例如旧订单数据等),但有人可以推荐一种解决性能问题的替代方法,而无需删除数据吗?
我曾看到一些文章建议使用索引插件来索引行数较多的数据库表,但是,上次我们尝试这种方法时,我们的数据库损坏了(但我们有一个备用备份可以随时恢复)
我知道有很多关于 WordPress 膨胀的帖子/文章,这伴随着数据库中大量元数据和帖子数据的积累,但是有没有建议,例如更适合处理大量数据的替代数据库引擎/系统?
或者也许有任何基于对我们当前数据库进行优化的建议,以便更快地处理具有大量行数的数据库表?(作为加快页面加载时间的一种方式)
MySQL 数据库服务器规格:
表引擎: INNODB
我们目前正在远程数据库服务器上运行我们的数据库,并且使用的是 MySQL 8.0。
服务器规格:
- 裸机服务器
- CPU:16 核 x 3.0 GHz(AMD Epyc 7302P)
- 内存:128 GB
- NVMe2 x 960 GB 硬件 RAID 1