This is really a server question and not particularly WordPress.
You’re running into a MySQL server speed bottleneck at 1and1. Sorry, but they’re well known as a slow shared host, and for that reason I doubt their VPSs are any better.
Caching and a CDN will only do so much for you. You need more horsepowwer in the form of a better and faster MySQL server, and if you’re already paying for a VPS, move to a better VPS host, like Media Temple.
Once there, with root access, you can use a utility such as http://mysqltuner.com to log and analyze the performance of the MySQL server and adjust server memory and database query cache parameters in the configuration file my.cnf. You will also be able to adjust apache – in httpd.conf – to handle high loads.
There is little sense in trying to optimize the database queries made by Woo Commerce or WordPress; any changes made will need to be made again after updates.
Related Posts:
- WordPress database scalability from the code perspective
- WordPress for a very large website
- How to solve slow WordPress site caused by attachment_metadata
- Changing BIGINT to INT
- Database slowdown after update to 3.4.1
- Which is more efficient? Using usermeta, or creating a new MySQL table?
- Improve performance by removing unnecessary database queries
- How to prevent/delay MySQL connections when an object cache is used?
- Mysql Queries per Visit – Crazy High
- Slow queries constantly getting stuck on WordPress database of ~100,000 posts
- How can I perform high-level database merging for WordPress within continues delivery?
- A MySQL DB within a MySQL DB
- How do I query wp_options for expired transient pairs with MySQL commands?
- Switching Databases in LocalHost
- WordPress Backend HA (Automatic failover)
- Create table from array with prepare
- Automatic switch to backup database on fail
- Migrating to WordPress Recipe Plugin and Some SQL Issues
- Is there a way to recover the table wp_term_relationships?
- Trouble Migrating all data blog from WordPress.com to WordPress.org
- Unable to set a default serialized array using dbdelta()
- fastest replacement DB
- Multiple instance of data in plugin custom database table on plugin activation
- Does auto_load to ‘no’ in wp_options improve performance
- WordPress running SQL query to update database from form
- How to fix database error duplicate entry
- Migrating from PDO using SQLite to clean new install using MySQL
- Migration: Copying database content to a different server
- Call to undefined function get_user_meta() – trying to access data in MySQL from custom fields
- Better ads plugin has 500.000 entries in wp_postmeta
- Duplicated site isn’t recognized as a site
- How to combine multiple wp_insert_post into one in order to gain better performance
- How do I convert a MySQL database from utf8mb4 to utf8 encoding?
- after wordpress update to 3.5+ i get many errors in plugin wpdb::prepare()
- Query multiple tables at once?
- Have working sql query… trying to adjust it to use $wpdb
- Error establishing a database connection,
- Changing root password in PHPMyAdmin for WordPress Database when going live
- How to properly check if a table exists in WordPress Database using Show Tables Query
- Can’t update WordFence Options, clear data manually
- Changing between Local Host DB to Production DB and in reverse
- creating new field on mysql
- dbDelta not adding additional columns in plugin database update
- Remove empty rows from the database
- Custom WordPress Table wpdb
- Why this query is not showing any result on wordpresss home page?
- Best practice to limit results in get_row()?
- How and where is wordpress adding mySQL content to database?
- Plugin has added weird data in wp_options, set to autoload
- Always get creating a new table with foreign key
- How to do database for download stats?
- Why does changing Database Table Prefixes result in loss of content?
- Trouble running $wpdb->query() with last_insert_id
- how to encyrpt DB_PASSWORD in wp-config
- DB Query not working in Plugin
- SQL query to set posts in bulk based on the post content
- Query Column of Specific ID from Database Table
- External wpdb connections in different plugins on single page
- How can I detect right db type?
- How to create more than one new wpdb object?
- Optimizing function that automatically creates internal links based on post title string
- Moving WordPress site to new domain – database import [duplicate]
- How to connect and insert data in database of wordpress?
- Buddypress avatar image in database [closed]
- Changing order of db results when encoding to JSON
- Files on Localhost, Database on Server
- WordPress plugin: efficient way to store large data
- $wpdb->get_var – What value is returned when zero records are found?
- Remote database -> massive response time increase?
- WordPress database error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version [closed]
- Installing local to live WP into subdirectory
- Second ezSQL initialization for MSSQL
- Fetch a single row from a custom table for to a given ID
- Database create or redirect
- Integrating Custom Database with WordPress
- Getting “Error Establishing a Database Connection” on localhost in new Mac OSX Lion environment
- How to display results from a data table with an encrypted user id?
- Cloning blog to localhost via WAMP
- Only allow user to access a link once a year, based on their joining date
- add_action for publish_post doesn’t work
- Counting post and changing roles in mysql database. Query not code
- MSQL database wp_postmeta has meta key tve_revision
- Is there anyway to split posts to different databases?
- How to escape percentage sign(%) in sql query with $wpdb->prepare?
- What database state changes happen after a post is manually “updated” with no changes?
- Link multiple user databases together?
- DB prefix not updating
- Cant create table on plugin activation
- Recovery – Restore Database after moving folder location locally
- Replacing javascript link in WordPress database without getting mysql syntax errors
- Performing CRUD operations on front end in wordpress
- I wanted to Know that how can I give ingore to 0000-00-00 in my config file
- I imported an restore an database and It shows #1067 – Invalid default value for ‘user_registered’
- Set a cron job to delete a specific database table table every midnight
- How to edit custom table data in frontend
- Job and Employee Performance Tracking with Product Safety
- local wordpress broke after changing URL
- “BS_” rows in postmeta table
- What structure and database storage method should I use for temporary storage that may be written concurrently?
- how to access 2nd Mysqli Database from different server for wordpress