altis/roles-to-taxonomy

WordPress 插件,用于将用户角色和用户等级存储在分类法中,以提升性能。

安装量: 32,744

依赖项: 0

建议者: 0

安全: 0

星标: 88

关注者: 23

分支: 9

开放问题: 2

类型:wordpress-plugin

0.1.5 2023-01-04 16:28 UTC

This package is auto-updated.

Last update: 2024-08-28 21:59:02 UTC


README

WordPress 插件,用于将用户角色和用户等级存储在分类法中,以提升性能。

WordPress 数据库中有许多用户会导致按角色、用户等级查询用户或计数用户时性能变差。这是特别的问题,因为默认的 WordPress 管理员用户列表表、帖子表和帖子编辑界面都会执行这些查询。

默认 WordPress 存储机制的实质问题是使用帖子元数据存储用户等级和角色。更糟糕的是,角色以序列化数组的形式存储,因此按角色查询用户的任何查询都会导致 MySQL LIKE 查询在一个未索引的文本列(meta_value)上。

Roles to Taxonomy 注册了两个影子分类法以关联用户对象与角色/用户等级术语。这导致在特定角色中的用户查找速度大大提高。术语 count 字段也用于在某些情况下计算用户数量。

性能比较(220万网络用户,150万单个站点用户)

用法

激活插件时,需要将现有用户角色和等级填充到分类法中。该插件附带一个 WP CLI 命令以执行现有角色的同步。

wp roles-to-taxonomy sync [--verbose] [--batch-size=<number>] [--progress] [--offset=<number>] [--fast-populate] [--limit=<number>]
  • batch-size=x 指定一次处理的用户块大小。如果您有10,000+用户,您希望将其设置为合理的块大小(例如5,000),以避免耗尽所有可用内存。
  • progress 将输出进度条。
  • limit=x 将限制同步到分类法中的用户角色总数。
  • offset=x 将从给定的偏移量数字开始更新用户。
  • fast-populate 将启用一个非常快速的术语/分类法填充模式。这使用许多直接 SQL 查询,从而绕过 WordPress 进程、钩子、对象缓存等。这仅建议您尚未将任何用户同步到分类法。这应在您有100,000+用户时使用。在测试中,它能够在15分钟内以每分钟100万用户的速度插入使用角色和等级术语。