Uncategorized

关于产品和订单分表

产品分表早在2018年官方就有了, 但是不知道为什么, 只是插件, 总的来说, 用WOO的人,产品还是很少, 能影响性能,也从其他方面优化了, 下面是产品分表

 


性能改进

在我们的测试中,我们在同一个托管服务提供商上设置了两个相同的商店,它们具有相同的主题和 WooCommerce 设置,唯一的区别是运行自定义产品表功能插件。

为了测试新产品表,我们需要轻松创建大量商店数据——特别是产品、订单和客户。为此,我们创建了WooCommerce Smooth Generator – 一个易于使用的开发插件,可让您生成 WooCommerce 数据以测试您的任何开发的可扩展性。

对于测试,我们创建了一个包含 500 种产品的数据集,并将其导入到两个相同的商店,以Storefront作为主题,没有其他插件——一个商店使用普通的 WooCommerce 数据结构,另一个商店使用我们的新功能插件。

两家商店的数据库中还有 70,000 个订单和 140 万行范围内的元数据。

平均加载时间

到目前为止,结果非常好——页面加载时间提高了 30%!结账可以说是商店体验中最重要的部分,它的性能提升最大。

安装插件

要安装插件,您需要:

在测试期间,我们限制了对插件功能的访问,以便我们可以从开发者社区收集反馈。

我们不建议您在实时商店中安装和使用它。

数据迁移

目前有两个 WP-CLI 命令可用于迁移您的数据:
wp wc-product-tables migrate-data [--clean-old-data]– 此命令会将数据从当前 WordPress 表迁移到新表,传递 –clean-old-data 标志将导致旧数据从WordPress 表。使用此标志时请小心,因为如果未备份,它可能会导致您丢失产品数据并且您需要恢复。
*wp wc-product-tables recreate-tables– 此命令将删除所有新产品表,删除其中的所有数据,然后创建新的干净表。如果您愿意,此命令对于再次从新测试迁移过程很有用。同样,请小心,就像您运行带有 –clean-old-data 标志的 migrate-data 命令一样,运行此命令会导致您的所有数据丢失,因此请始终为您的产品保留备份。

请注意,启用插件后创建的任何新产品都将在新表中创建,并且如果您再次禁用该插件,则这些产品将不可用。

添加了哪些表

  • wc_products – 包含消除大部分元数据表存储的产品数据。元数据表中的一些不经常访问的字段,以及所有扩展特定的数据,都将保留在元数据中。
  • wc_product_attributes – 包含产品属性及其设置。
  • wc_product_attribute_values – 包含产品属性值及其设置。
  • wc_product_downloads – 包含产品下载及其设置。
  • wc_product_relationships – 包含与 WooCommerce 生态系统中其他产品或对象的所有产品关系,即其他产品、图像等。
  • wc_product_variation_attribute_values – 包含产品的变体数据。

这些表目前涵盖了产品的所有方面,包括产品设置、属性、变体、下载以及其他关系,例如追加销售、交叉销售、分组产品和图像。

与扩展和主题的兼容性

我们通过添加特定功能来检查元数据调用,然后进行干预以确保将数据路由到正确的表和从正确的表中路由,从而牢记向后兼容性。

虽然我们已经注意确保不使用 CRUD 的开发人员可以在正确的表中获取/设置数据,但我们建议开发人员使用插件和主题进行直接元调用以避免这种情况,而是使用提供的 getter 和 setter 方法自 3.0 版以来的数据存储。我们在此处发布了文档以帮助您迁移到 CRUD 系统。

发布时间表

我们的下一个里程碑是在 WordPress.org 上发布此插件,以便任何商店都可以从性能改进中受益。为了实现这一目标,我们需要您的帮助来完成测试,以便我们能够发现所有问题并更好地了解性能改进和您在野外看到的问题。

安装测试版后,请针对您在GitHub 存储库中遇到的任何问题打开一个问题。并且,请在评论中告诉我们您所看到的性能改进 – 我们很乐意听取您的意见!

我们计划在明年初的主要版本更新中包含新产品表。

// 刚测试了,现在版本已经7.0了, 还没有这个, 不知道什么原因


 

订单分表: 高性能订单存储: 第 2 卷 (正在测试, 域名2023年8月正式上线这个功能, 目测公测阶段  // 哈哈, 说8月这个难讲)

随着我们接近实施高性能订单存储 (HPOS) 的最后阶段,我们相信我们已准备好与您分享最新的解决方案。因此,我们想邀请我们的社区进行第二轮测试。我们的第一次测试呼吁集中在数据迁移上。这一次,我们主要想听听您对以下领域的反馈:

  • 扩展点和集成点
  • 在自定义帖子类型和 HPOS 解决方案之间切换
  • 同步
  • 用户界面

但是,我们欢迎您就用户和开发体验的各个方面提供反馈,因此请随时与我们分享您的想法!

真实数据。真正的改进。

我们一直在对通过WC Smooth Generator创建的合成数据进行大量测试。在此测试中,我们主要对运行各种插件并使用真实数据的站点的结果感兴趣。我们也有兴趣发现我们的解决方案在不同托管配置上的所有可能故障模式,因此如果您正在运行非典型设置,我们很乐意听取您的意见!

如何测试

请仅在您的测试/登台环境中执行测试。此代码尚未准备好生产,仅用于测试目的。

要设置测试环境,您需要执行以下步骤:

  1. 下载并安装测试包
  2. 启用实验功能
  3. 创建新的数据库表
  4. 根据您的喜好设置 HPOS 设置

1.下载安装包

测试 zip 包可以从GitHub 的项目发布页面下载。导航到该页面后,单击 woocommerce.zip下载测试版本。

此页面将始终包含最新版本的 HPOS 测试包,因此您可以确信通过此链接下载 woocommerce.zip 包意味着您正在运行最新版本的修复程序。

在测试阶段,我们将经常生成新的测试版本,因此请检查此页面以防您发现任何问题,以确保您运行的是最新版本。

安装包

像使用任何其他版本一样上传此包。通常的路径是通过插件 > 添加新的 > 上传插件 > 选择文件 > 立即安装 > 激活/替换当前上传的版本来添加它。

2.启用实验功能

安装软件包后,转到 WooCommerce > 设置 > 高级 > 功能并启用实验功能下标题为“自定义订单表”的复选框。

3. 创建新的高性能订单表

如果您参加了我们上一轮的测试,我们建议您先删除订单表,以确保正确创建新架构。要删除表格,请转到 WooCommerce > 状态 > 工具并找到“删除自定义订单表格”行并单击Delete

要开始使用新功能,您需要为 HPOS 创建新表。转到 WooCommerce > 状态 > 工具并找到“创建自定义订单表”行。单击Create按钮并检查确认表已创建。

4.根据自己的喜好设置HPOS

您应该可以在 WooCommerce > 设置 > 高级 > 自定义数据存储下使用新设置。

选择以下单选按钮将您的 Orders 数据存储切换到 WooCommerce 表:

  • 使用 WooCommerce 订单表

选中以下复选框以保持 Orders 表同步:

  • 保持帖子表和订单表同步

根据您商店中的订单数量,您的 WooCommerce 实例可能需要一段时间才能切换到新的 HPOS。 

您可以通过运行以下命令在 WP CLI 环境中执行同步来加速初始同步wp wc cot sync

 

1
2
3
4
5
6
7
8
9
10
11
> wp wc cot sync
This feature is not production ready yet. Make sure you are not running these commands in your production environment.
There are 22872 orders to be synced.
Order Data Sync  100% [===========================================================================================================] 1:34 / 1:12
Migration completed.
Success: 22872 orders were migrated in 90.777226 seconds

 

测试什么

我们很想听听该解决方案如何在您正常的日常工作流程中以及您在 WordPress 商店中使用的常用插件集为您工作。 

扩展和集成点

我们相信大多数操作、过滤器和 API 集成点现在应该完全可用。如果您的代码、插件和集成以任何方式与订单一起使用,我们希望您使用新的 HPOS 测试您的解决方案并让我们知道您的想法。

在自定义帖子类型和 HPOS 解决方案之间切换

您在订单存储解决方案之间切换时遇到过任何问题吗?您的扩展程序是否适用于任何一个数据存储?

同步

同步对您有用吗?它在某些时候卡住了吗?您是否对体验的任何方面感到困惑?启用或禁用同步后,您的自定义设置是否仍然有效? 

据推测,在禁用同步的情况下运行自定义将更容易发现问题,因此请花一些时间在禁用同步的情况下进行测试。

用户界面

我们想听听您关于您通常的工作流程或您客户的工作流程的信息。从在 WP 管理界面中创建新订单并通过结帐到订单处理、搜索订单、预览它们以及您认为在处理订单的上下文中重要的所有交互。

如何分享反馈

请通过 proton[at]matticspace[dot]com 与我们分享反馈。理想情况下,包括您的系统状态报告,并在出现问题时提供任何重现步骤。另外,请随时对这篇文章发表评论,我们很高兴听到您的想法!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注