Index WP MySQL For Speed
How do I use this plugin? After you install and activate this plugin, visit the Index MySQL Tool under the Tools menu. From there you can press the Add Keys Now button. If you have large tables, use it with WP-CLI instead to avoid timeouts. See the WP-CLI section to learn more. What does it do for my site? This plugin works to make your MySQL database work more efficiently by adding high-performance keys to the tables you choose. On request it monitors your site’s use of your MySQL database to detect which database operations are slowest. It is most useful for large sites: sites with many users, posts, pages, and / or products. You can use it to restore WordPress’s default keys if need be. What is this all about? Where does WordPress store all that stuff that makes your site great? Where are your pages, posts, products, media, users, custom fields, metadata, and all your valuable content? All that data is in the MySQL relational database management system. (Many hosting providers and servers use the MariaDB fork of the MySQL software; it works exactly the same way as MySQL itself.) As your site grows, your MySQL tables grow. Giant tables can make your page loads slow down, frustrate your users, and even hurt your search-engine rankings. And, bulk imports can take absurd amounts of time. What can you do about this? You can install and use a database cleaner plugin to get rid of old unwanted data and reorganize your tables. That makes them smaller, and therefore faster. That is a good and necessary task. That is not the task of this plugin. You can, if your hosting provider supports it, install and use a Persistent Object Cache plugin to reduce traffic to your database. That is not the task of this plugin either. This plugin adds database keys (also called indexes) to your MySQL tables to make it easier for WordPress to find the information it needs. All relational database management systems store your information in long-lived tables. For example, WordPress stores your posts and other content in a table called wp_posts, and custom post fields in another table called wp_postmeta. A successful site can have thousands of posts and hundreds of thousands of custom post fields. MySQL has two jobs: Keep all that data organized. Find the data it needs quickly. To do its second job, MySQL uses database keys. Each table has one or more keys. For example, wp_posts has a key to let it quickly find posts when you know the author. Without its post_author key MySQL would have to scan every one of your posts looking for matches to the author you want. Our users know what that looks like: slow. With the key, MySQL can jump right to the matching posts. In a new WordPress site with a couple of users and a dozen posts, the keys don’t matter very much. As the site grows the keys start to matter, a lot. Database management systems are designed to have their keys updated, adjusted, and tweaked as their tables grow. They’re designed to allow the keys to evolve without changing the content of the underlying tables. In organizations with large databases adding, dropping, or altering keys doesn’t change the underlying data. It is a routine maintenance task in many data centers. If changing keys caused databases to lose data, the MySQL and MariaDB developers would hear howling not just from you and me, but from many heavyweight users. (You should still back up your WordPress instance of course.) Better keys allow WordPress’s code to run faster without any code changes. Experience with large sites shows that many MySQL slowdowns can be improved by better keys. Code is poetry, data is treasure, and database keys are grease that makes code and data work together smoothly. Which tables does the plugin add keys to? This plugin adds and updates keys in these WordPress and WooCommerce tables. wp_comments wp_commentmeta wp_posts wp_postmeta wp_termmeta wp_users wp_usermeta wp_options wp_wc_orders_meta wp_woocommerce_order_itemmeta wp_automatewoo_log_meta You only need run this plugin once to get its benefits. How can I monitor my database’s operation? On the Index MySQL page (from your Tools menu on your dashboard), you will find the “Monitor Database Operations” tab. Use it to request monitoring for a number of minutes you choose. You can monitor either the site (your user-visible pages) or the dashboard, or both. all pageviews, or a random sample. (Random samples are useful on very busy sites to reduce monitoring overhead.) Once you have gathered monitoring information, you can view the captured queries, and sort them by how long they take. Or you can save the monitor information to a file and show it to somebody who knows about database operations. Or you can upload the monitor to the plugin’s servers so the authors can look at it. It’s a good idea to monitor for a five-minute interval at a time of day when your site is busy. Once you’ve completed a monitor, you can examine it to determine which database operations are slowing you down the most. Please consider uploading your saved monitors to the plugin’s servers. It’s how we learn from your experience to keep improving. Push the Upload button on the monitor’s tab. WP-CLI command line operation This plugin supports WP-CLI. When your tables are large this is the best way to add the high-performance keys: it doesn’t time out. Give the command wp help index-mysql for details. A few examples: wp index-mysql status shows the current status of high-performance keys. wp index-mysql enable --all adds the high-performance keys to all tables that don’t have them. wp index-mysql enable wp_postmeta adds the high-performance keys to the postmeta table. wp index-mysql disable --all removes the high-performance keys from all tables that have them, restoring WordPress’s default keys. wp index-mysql enable --all --dryrun writes out the SQL statements necessary to add the high-performance keys to all tables, but does not run them. wp index-mysql enable --all --dryrun | wp db query writes out the SQL statements and pipes them to wp db to run them. Note: avoid saving the –dryrun output statements to run later. The plugin generates them to match the current state of your tables. Why use this plugin? Three reasons (maybe four): to save carbon footprint. to save carbon footprint. to save carbon footprint. to save people time. Seriously, the microwatt hours of electricity saved by faster web site technologies add up fast, especially at WordPress’s global scale. How can I learn more about making my WordPress site more efficient? We offer several plugins to help with your site’s database efficiency. You can read about them here. Credits Michael Uno for Admin Page Framework. Marco Cesarato for LiteSQLParser. Allan Jardine for Datatables.net. Leho Kraav and Sebastian Sommer for suggesting the WooCommerce tables. Japreet Sethi for advice, and for testing on his large installation. Rick James for everything. Jetbrains for their IDE tools, especially PhpStorm. It’s hard to imagine trying to navigate an epic code base without their tools.
Top keywords
- keys24×1.98%
- wp24×1.98%
- tables17×1.40%
- database16×1.32%
- mysql15×1.23%
- site12×0.99%
- posts11×0.91%
- wordpress11×0.91%
- data9×0.74%
- monitor8×0.66%
- high-performance7×0.58%
- high-performance keys7×0.58%
LiteSpeed Cache
LiteSpeed Cache for WordPress (LSCWP) is an all-in-one site acceleration plugin, featuring an exclusive server-level cache and a collection of optimization features. LSCWP supports WordPress Multisite and is compatible with most popular plugins, including WooCommerce, bbPress, and Yoast SEO. LiteSpeed Cache for WordPress is compatible with ClassicPress. Requirements General Features may be used by anyone with any web server (LiteSpeed, Apache, NGINX, etc.). LiteSpeed Exclusive Features require one of the following: OpenLiteSpeed, commercial LiteSpeed products, LiteSpeed-powered hosting, or QUIC.cloud CDN. Why? Plugin Features General Features Free QUIC.cloud CDN Cache Object Cache (Memcached/LSMCD/Redis) Support+ Image Optimization (Lossless/Lossy) Minify CSS, JavaScript, and HTML Minify inline & external CSS/JS Combine CSS/JS Automatically generate Critical CSS Lazy-load images/iframes Responsive Image Placeholders Multiple CDN Support+ Load CSS Asynchronously Defer/delay JS loading Browser Cache Support+ Database Cleaner and Optimizer PageSpeed score (including Core Web Vitals) optimization OPcode Cache Support+ HTTP/2 Push for CSS/JS (on web servers that support it) DNS Prefetch Cloudflare API Single Site and Multisite (Network) support Import/Export settings Attractive, easy-to-understand interface AVIF/WebP image format support Heartbeat control + This service is not provided by the LSCache plugin, nor is it guaranteed to be installed by your service provider. However, the plugin is compatible with the service if it is in use on your site. LiteSpeed Exclusive Features Automatic page caching to greatly improve site performance Automatic purge of related pages based on certain events Private cache for logged-in users Caching of WordPress REST API calls Separate caching of desktop and mobile views Ability to schedule purge for specified URLs WooCommerce and bbPress support WordPress CLI commands API system for easy cache integration Exclude from cache by URI, Category, Tag, Cookie, User Agent Smart preload crawler with support for SEO-friendly sitemap Multiple crawlers for cache varies HTTP/2 support HTTP/3 & QUIC support ESI (Edge Side Includes) support* Widgets and Shortcodes as ESI blocks* (requires Classic Widgets plugin for WP 5.8+) * Feature not available in OpenLiteSpeed LSCWP Resources Join our Slack community to connect with other LiteSpeed users. Ask a question on our support forum. View detailed documentation. Read about LSCWP and WordPress on our blog. Help translate LSCWP. Contribute to the LSCWP GitHub repo. Third Party Compatibility The vast majority of plugins and themes are compatible with LSCache. Our API is available for those that are not. Use the API to customize smart purging, customize cache rules, create cache varies, and make WP nonce cacheable, among other things. Privacy This plugin includes some suggested text that you can add to your site’s Privacy Policy via the Guide in the WordPress Privacy settings. For your own information: LiteSpeed Cache for WordPress potentially stores a duplicate copy of every web page on display on your site. The pages are stored locally on the system where LiteSpeed server software is installed and are not transferred to or accessed by LiteSpeed employees in any way, except as necessary in providing routine technical support if you request it. All cache files are temporary, and may easily be purged before their natural expiration, if necessary, via a Purge All command. It is up to individual site administrators to come up with their own cache expiration rules. In addition to caching, our WordPress plugin has online features provided by QUIC.cloud for Image Optimization and Page Optimization services. When one of these optimizations is requested, data is transmitted to a remote QUIC.cloud server, processed, and then transmitted back for use on your site. QUIC.cloud keeps copies of that data for up to 7 days and then permanently deletes it. Similarly, the WordPress plugin has a Reporting feature whereby a site owner can transmit an environment report to LiteSpeed so that we may better provide technical support. None of these features collects any visitor data. Only server and site data are involved. QUIC.cloud CDN, if enabled, uses LSCache technology to access your site, and serve your content from remote global nodes. Your data is not accessed by QUIC.cloud employees in any way, except as necessary in providing maintenance or technical support. Please see the QUIC.cloud Privacy Policy for our complete Privacy/GDPR statement.