I can’t comment on foreign keys but moving to InnoDB would be a good idea for large scale.
Although it’s a little slower than MyISAM, it does row level locking, rather than table level locking. As a result saving a post or doing a lengthy operation or query won’t lock the posts table, freezing the entire site while it waits for the table to unlock.
For very large multisites it may be desirable to investigate HyperDB, which is what wordpress.com uses.
Not DB related but you may want to look into the short init definition for AJAX calls
Related Posts:
- WordPress (MyISAM) database is slow, should I switch to InnoDB?
- Does WordPress use the InnoDB engine for MySQL by default?
- Large database causes slow load
- Is it safe to convert tables from MyISAM to InnoDB?
- Is MariaDB’s Aria storage engine suitable for WordPress?
- Trying to change database tables storage engine to innodb gives error “invalid default value for ‘post_date'”
- Checking if Database Table exists
- Staging sites, how do you manage synchronising updates in the DB?
- How to get the post publish date outside the loop?
- How To Export/Import WordPress (MySQL) Database Properly Via Command-Line?
- Using transients in conjunction with memcached
- How to define composite keys with dbDelta()
- Has parent field in the table wp_term_taxonomy has term_id or term_taxonomy_id
- Ways of managing staging and production wordpress sites?
- What is the most secure way to store post meta data in WP?
- Corrupt WordPress Database
- Have multiple local wordpress installs share a wp-content folder and database
- Faulty restore of the database, encoding issue
- Updating all rows of table with $wpdb
- What actions affect files, DB, or both?
- Cannot unserialize WordPress serialized values in `wp_options` table?
- Is $wpdb->prepare escaping to much? How to use it properly?
- How to log database changes during an upgrade?
- Using same database for main and subdomain
- What is stored in the webserver? (Separated Database)
- Remove database entries where post_date > expiration date
- Installation with sql server express edition
- Emojis getting converted to “?”
- Building a Scalable Resiliant WP Setup
- Single database for multiple instances
- Get all tags not just first 10 with wp api 2.0
- Search and replace special characters (å,ä,ö) for image attachments only in database
- Accidentally deleted active_plugins portion of the wp_options DB table
- Automate dir and DB stack creation with WP-CLI
- Moving WP from local server to live, error establishing a db connection
- delete post meta from db, even if does not exist?
- In what part of the WordPress core does the users table and usermeta table get joined?
- WordPress and MySQL: how to transfer Meta_key and Meta_Value from one post_id to another
- Output custom content not from the posts table?
- Exporting table to csv works in the admin but exports HTML data when used on the front end
- wp search-replace (not executing)
- Reducing Database Query Time
- How can I get my wordpress password from an SQL file?
- Create table from array with prepare
- Migrate database between 2 different wordpress version
- Is there an atomic way to update_option in WordPress (to ensure data integrity)?
- SSO system between 2 WordPress installs on different servers
- Form that sends data to an admin panel and can export it
- All text disappeared (seems to be a database problem) [closed]
- Convert user passwords to MD5?
- is wordpress stores Role Id in WP database?
- Why do database examples sometimes finish with an add_option call?
- Does post_meta data need to be unserialzed?
- How to backup my site and restore my wordpress site
- How to fetch records from database WordPress
- How and where is wordpress adding mySQL content to database?
- restore a db after bad backup
- How get Data form wordpress database as array not stdclass?
- Set default Database Storage Engine when creating tables with plugins?
- cannot connect database
- How to delete a particular row in a database table
- Brandoo WordPress Unable to Update to WordPress 4.2.2
- Connecting to wordpress database in my application [closed]
- Remote database -> massive response time increase?
- Custom Post Type not showing anything added by code anymore?
- change the year on all of my custom post types?
- How do I have a user upload a blog post and then retrieve that to display in a card on the site?
- Delete user with only subscriber role
- WordPress keeps redirecting to localhost
- get value from ‘terms’ table
- custom tables in wordpress Database? (can i just create them with sql?)
- How to rename custom table name programatically in wordpress?
- Displaying requested data from a the database in wordpress
- Accidently changed the GUID
- How to edit custom table data in frontend
- pre_get_posts causings DB error when using ( ‘posts_per_page’, -1)?
- generate PDF from member information
- mysqli_query(): MySQL server has gone away for Curl Request
- Help posting values to DB on submit using $wpdb->query
- Restore Old Database Over Newer WP & Plugin Files
- wpdb query to insert images in to post/page gallery
- Creating a database in my plugin not working
- How to create index (sql) to a meta_key?
- Not sure what to do next to optimize
- Database structure for thousands of posts
- get_user_meta and umeta_id
- $wpdb not working
- Accessing content from third party as native posts in WordPress
- Extracted CSV as Array for Custom Query Loop
- One WP Database outside localhost and two connections
- Send data to database after redirect (and popping out of iframe)
- Fetch data from another site, but the same database
- Simple email input store in database
- Every time I update or install a plugin I get “Error Establishing a Database Connection in WordPress”
- import (migration) user database to wp-users
- $wpdb->insert not working for last select option
- How to create a table [closed]
- Upload wordpress from localhost to 000webhost
- How can i change the nicename and the displayname in a bulk in the database?
- Have WordPress Use a Different Database for users