Use a custom table. Create it as a network table, and store the site ID, so you can use just one table for the whole network.
row_id | site_id | post_id | user_id
There is no equivalent for such a table in the current core tables. Avoid serialized data, because that format is PHP specific, so you cannot read its data in any other language (including SQL), and sorting by or searching for any value is just awkward.
You have to track sites, users and posts now to delete matching entries whenever one of these objects is deleted.
Related Posts:
- Is there any difference between hooks posts_where with posts_join and posts_search performance wise?
- Advanced Custom Fields – Query Efficiency
- Very slow query
- Mysql / WordPress killing my server with 80k users [closed]
- Why a URL with a query is always slower than that without a query?
- wp_posts query slowing down my website
- Improve performance of slow query
- Performance of wp_get_attachment_image_srcset() and wp_get_attachment_image_url()
- How to display SQL query that ran in query?
- How can I create a meta_query with an array as meta_field?
- Query multiple meta key values?
- How to Optimize WP site for millions of posts
- How to get comments by post ID?
- Differences between wpdb->get_results() and wpdb->query()
- Is there a way of increasing the speed of this query?
- Get all image from single page using this query
- How can I query all users who registered today?
- Get Terms by IDs with IDs order
- Reversing the order of posts AFTER the query is performed
- what are the numbers between curly brackets in search query
- simple sql query on wp_postmeta very slow
- Using WordPress public query variables
- How to Use Wildcards in $wpdb Queries Using $wpdb->get_results & $wpdb->prepare?
- When/why does ‘$query->get( ‘tax_query’ );’ return empty?
- How to get link and title of next and previous post on single page
- Create pagination and order according to alphabet
- wpdb get posts by taxonomy SQL
- How to List Events by Year and Month Using Advanced Custom Fields?
- What is the most efficient way of querying posts based on visits and date for current day?
- wordpress query – orderby child post date
- How many WordPress SQL Queries per page?
- How to display Section for certain time
- Add multiple value to a query variable in WordPress
- Search custom post type by meta data
- Custom query_var causes displaying posts archive on front page
- Slow wp_enqueue_media()
- Multipart/formatted MySQL query problem
- Remove [gallery] shortcode altogether
- Compare two numeric custom fields
- wp_dropdown_categories with multiple select
- Why does get_the_time(‘F j’) return November 30 for all posts?
- Disable slow media queries?
- Query by one meta_key and sort by another (possibly NULL value)
- How to tune search argument in WP_Query to show only exactly the same results?
- Custom query filter not working on woocommerce category page
- How to delete a transient on post/page publish?
- query multiple taxonomy and show post count
- Search Terms – Querying on either description__like OR name__like in the same Term Query?
- Query & Sort Comments by custom comment meta
- How to get my loop to pull posts into three columns
- I have over 4000 posts, will querying some of them cause performance issues?
- How to display lastest post date in the homepage?
- Custom $wpdb Query for Custom Post Type by Category
- Get a user’s most recent post title
- Categories and products in random order
- add_query_arg() XSS Vulnerability
- Count user posts by user ID, Post type and Post status
- Can’t pass table to $wpdb->prepare
- Query set using tax_query with relation ‘OR’ modifies category object?
- $query->query_var[‘post_type’] not set for pages
- is_archive() doesn’t work on public query var archive pages?
- How to extract all ID variables from a query string?
- When add_query_arg() is necessary?
- Different Main Navigation per category
- How to get category link without a database query
- Insert html after certain amount of posts?
- wp remove query
- Show recent products first but “sold out last” in query
- WordPress creating excessive joins on meta_query with search
- How to display liked posts of current user in wordpress?
- Filter query posts by the count of metas for a meta key
- How to tell if $query_var isset?
- Show All Posts Insert Edit Link
- $wpdb->get_var not returning a result
- get_the_foo() in the loop – does it perform another query?
- search through post-type attachments titles
- How to count get_users query?
- Date query year and month OR just year
- WP_Query Performance Issues with meta_query
- cron job to auto delete posts of a specific post type older than x days
- Possible to get posts from multiple meta keys/values in a single query?
- Are database queries created using WordPress filters protected from SQL injection?
- Get IDs of posts currently visible on archive
- Get posts by category with pure SQL query
- can’t get query to order posts by acf datepicker
- Sorting Grids with Essential Grid and Events Manger
- $args numberposts variable
- The use of including upgrade.php when building custom queries
- get post id using the $query_vars variable
- Most effective use of DB querys
- Difference between fragment caching and wp_cache
- Custom query to get terms from post ids
- Save default value for empty or missing post meta
- Remove Unnecessary Mysql Query
- Get the timout value of a saved transient?
- Help with wordpress custom query and advanced custom fields plugin
- Grouping related postmeta data via SQL query
- WordPress query by category, sorted by custom field
- Listing posts by grouping dates
- Does meta_query work within get_posts array?