WP options (which is one of the most basic and used storage APIs) can be stored with or without “autoload” setting. Usually this is reasonable, since many options will be checked on each and every page load, so loading them in bulk during core load is much more efficient than individually.
Problems usually start when two problems compound:
- the total amount of options gets significantly large (let’s say hundreds of thousands, but it depends);
- large amount and/or size of options are marked for autoload which shouldn’t be.
There is no generic solution to this issue, since there is no generic common cause.
You would need to examine your actual data to see which options get loaded and what exactly happens to be a bottleneck.
Related Posts:
- How can I find the source of slow queries in WordPress?
- WordPress MySQL & PHP Performance
- Is it useful to turn on MySQL query cache for performance
- Universal problem: first request after ~25 second inactivity always slower (~1 second) than subsequent requests (~1/10sec)
- Concurrent / simultaneous MySQL connections
- Best settings for MySQL to speed up site? [closed]
- How do I join a $wpdb query with user meta using default value if not exist?
- Alter wp_post table vs. post_meta performance/speed
- Slow wp-admin due to “SELECT DISTINCT post_mime_type FROM wp_posts WHERE post_type = ‘attachment'”
- WordPress plugin overloading with tmp tables
- How to simulate web traffic to test performance of a website
- Regular XML-RPC timeouts
- Access Denied for User ‘root’@’localhost’ (using password: YES) – No Privileges?
- Cannot add or update a child row: a foreign key constraint fails
- Cannot delete or update a parent row: a foreign key constraint fails
- Cannot delete or update a parent row: a foreign key constraint fails
- ERROR 2003 (HY000): Can’t connect to MySQL server on localhost (10061)
- Rename a column in MySQL
- Not unique table/alias
- Install mysql-python (Windows)
- Authentication plugin ‘caching_sha2_password’ cannot be loaded
- #1055 – Expression of SELECT list is not in GROUP BY clause and contains nonaggregated column this is incompatible with sql_mode=only_full_group_by
- Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
- Disable ONLY_FULL_GROUP_BY
- MySQL WHERE IN ()
- SELECT list is not in GROUP BY clause and contains nonaggregated column …. incompatible with sql_mode=only_full_group_by
- Host ‘xxx.xx.xxx.xxx’ is not allowed to connect to this MySQL server
- difference between primary key and unique key
- grabbing first row in a mysql query only
- How to export a mysql database using Command Prompt?
- MySQL Error #1133 – Can’t find any matching row in the user table
- How can I prevent SQL injection in PHP?
- Best way to store an array in MySQL database?
- MySQL date formats – difficulty Inserting a date
- How to grant remote access permissions to mysql server for user?
- How to check if mysql database exists
- #1062 – Duplicate entry for key ‘PRIMARY’
- How can I convert a string to a float in mysql?
- Is there a Profiler equivalent for MySql?
- How to use greater than operator with date?
- Drop all databases in MySQL
- How to get the count of each distinct value in a column?
- How to replace the domain name in a WordPress database?
- WordPress database scalability from the code perspective
- Optimize WordPress Query that take 5 seconds to execute
- MySQL Replication Latency Issues in wp-admin pages
- Increment value (value = value+1) of $wpdb->update
- How can I debug my database connection for unit testing?
- Extending the database
- SQL query not working in alphabetical post title/content search
- Changing BIGINT to INT
- Importing MariaDB into Mysql in WordPress
- How many ‘wp_insert_post’ calls can be performed in one shot, in a very long ‘for’ loop?
- Keeping database within limits, please help!
- HTML Entities in Post Title
- Can’t find my wordpress DB in phpmyadmin
- Deprecated: mysql_connect():
- MySQL Rank & $wpdb
- Improve performance by removing unnecessary database queries
- $wpdb select all meta for each post
- Calculate average crossing post categories
- Replacing link URL ending strings via MySQL
- Many slow queries post_type = ‘attachment’;
- SQL command to convert all tags in lowercase?
- Problem with admin login after deployment
- Find out how many times the user has logged in
- WordPress(wpdb class) and mysql stored procedures
- Is it possible to create a WordPress table using array and loop?
- Can’t run database query
- How to stop $wpdb from prepending database name
- Match tag names with form titles
- Error missing MySQL extension
- Getting Error Trying to Create Table
- Best approach for a custom database filling in WP custom post types
- Why doesn’t custom mysql query return results? Is syntax correct?
- Insert two row in wordpress database
- SQL statement using placeholder is not returning results
- How to Bulk find and replace MySQL for post image url
- Wpdb query with dynamic table name
- update multiple rows in mysqli table base on two values
- Extract all users along with yoast metadata description
- How can I verify WordPress nonce from the following code?
- Deleting a table row through query
- How to write in MySQL more characters in user_nicename
- $wpdb->get_var not returning count
- Custom user query – orderby meta_key (that may not exist)
- Weird characters displayed when importing WordPress MySQL db
- How to get Attachments(image) with specific width\height ratio
- What is the cron doing?
- Apache Redirect based on WordPress permissions
- SQL error on restoring database
- MySQL database gives blank page (white screen of death)
- Datatabase error: Commands out of sync
- why is $wpdb->update() causing a DB error from within wp_set_password()
- Global MySQL replacing of text patterns/matches
- remove wordpress post links
- SQL get last entry of a specific gravity form
- mysqldump to a tar.gz
- Where is my mysql log on OS X?
- Can running a WP-Cron to update_post_meta cause performance issues?