WordPress plugin intelligence profile

Beyond Wpdb

※ Table names have been changed since v2.0.Please delete the meta_json table and reactivate it in the options screen. Are you having trouble with slo …

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 5.5
Current version2.0.1
WordPress coverageTested up to WordPress 5.5
Minimum stackWP — · PHP 7.0
Directory statusactive
Last directory update7 Dec 20205y ago
Active installationsNewAdoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records Beyond Wpdb version 2.0.1 as active, updated 5y ago and tested up to WordPress 5.5.

Overview

About this plugin

Please delete the meta_json table and reactivate it in the options screen.

Are you having trouble with slow queries due to WordPress table structure?

This plugin helps your site speed up using JSON type columns, one of the features of MySQL, and prevents complex queries while maintaining the flexibility of WordPress development.

You can also add a virtual column in the configuration page and index the virtual column to make it even faster.

Features

If a large amount of meta data is given to 1 post/user/comment and a complex meta_query is specified, a large number of inner joins will occur, which will slow down the execution of the query.

The effect will be noticeable especially when the number of records is large.

This plugin avoids complex joins and prevents slowdowns by storing all the meta data for 1 post/user/comment in a JSON type column in a custom meta table.

The dedicated configuration page includes a check for group_concat_max_len, a function to measure consistency of meta table and its custom meta table,

and the ability to add virtual columns, add a The ability to create indexes. Indexes on virtual columns to make it even faster.

Actual Behavior

  • You can create and delete json tables and triggers and data for each json table on the configuration page.
  • Create virtual columns and indexes for the json table you created in the configuration page.
  • If you add a virtual column to the json table in the configuration page, the SQL is converted to face the virtual column.
  • Converts the SQL that WordPress auto-generates when using the default APIs of get_posts, Wp_Query, and etc. into a simple SQL that combines the posts/users/comment table with its own meta table.
  • The custom meta table automatically stores data using MySQL and MariaDB triggers.

Conversion Conditions

  • Both the value in meta_key and meta_value is specified.
  • If meta_compare_key is specified, only = or EXISTS are allowed.
  • suppress_filters is false.

Custom meta tables generated by plugin

The actual table names are prefixed with $table_prefix.

* postmeta_beyond (for posts table)

* usermeta_beyond (for users table)

* commentmeta_beyond (for comment table)

Columns in each table

The actual table names are prefixed with $table_prefix.

* postmeta_beyond

* post_id(int)

* json(json)

* usermeta_beyond

* post_id(int)

* json(json)

* commentmeta_beyond

* post_id(int)

* json(json)

Example of storing data in JSON type column

{ "state": "Wisconsin", "city": "Winter" }

Results of Speed Measurement

ex1 ) Create 100 posts and 50 meta data for each post. Combine them 9 times.

-

postmeta_beyond

  • Equal:0.04
  • IN:0.09
  • NOT IN:0.06
  • LIKE:0.03
  • NOT LIKE:0.03
  • BETWEEN:0.04
  • NOT BETWEEN:0.04

-

postmeta

  • Equal:4.72
  • IN:4.79
  • NOT IN:4.74
  • LIKE:0.64
  • NOT LIKE:0.66
  • BETWEEN:0.63
  • NOT BETWEEN:0.63

ex2 ) 10,000 posts, 1 meta per post. meta_key is category.

Add a virtual column(category) to postmeta_beyond and put an index,

and compare it to the case without adding a virtual column.

-

postmeta_beyond(with virtual column)

  • Equal:0.02
  • IN:0.35
  • BETWEEN:0.12
  • NOT BETWEEN:0.09

-

postmeta_beyond(without virtual column)

  • Equal:0.15
  • IN:1.92
  • BETWEEN:0.37
  • NOT BETWEEN:0.29

Notes

  • You’ll need TRIGGER, SELECT, and UPDATE permissions for the target table and its columns to use the trigger feature of MySQL and MariaDB.
  • It makes changes to SQL only if suppress_filters is false.
  • This plugin sets 4294967295 to group_concat_max_len when it create an original table with JSON type column. You can change the number by using filter ‘beyond_group_concat_max_len’.
WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • meta query
  • json
  • pressman
  • pressmaninc
  • wpdb
Compatibility & maintenance

Compatibility & maintenance

Tested up to WordPress 5.5

Not yet marked as tested with WordPress 7.1. WordPress.org currently lists Tested up to 5.5.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to5.5
Minimum requirementsWordPress not listed · PHP 7.0
Update activity7 Dec 20205y ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

No tracked version or compatibility changes have been recorded by WP PlugIndex yet.

Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.