Repair and optimize wordpress database without a plugin using WP-CLI
The wordpress database has a central role in terms of site speed. If your site is loading slower, you may need to take a look inside your database. You can look inside the tables included in your database to find out the issue and if tables have become too large and overloaded with obsolete data. There are several situations where you may need to optimize or repair your database. Regular maintenance of your wp database also helps keep your site fast.
There are more than one ways to do this and one of them is to access your database through phpMyAdmin and then repair and optimize tables. You can also perform these tasks through the cpanel. Another method is to use a plugin for repairing database or optimizing tables. There are both free and premium plugins to achieve the task. You can also maintain your database without using a plugin, whether you want to backup your database, repair and optimize tables or clear transients.
The WP-CLI also provides an easy method to repair or optimize the wordpress database, without having to login to cpanel or phpMyAdmin. You do not need to change anything inside the wp-config.pho file either. However, to perform it you will need to have the WP-Cli installed and configured.
Repair and optimize database using phpMyAdmin
To repair your database or optimize the tables, you will need to login through phpMyAdmin. Select the database you want to optimize from the left sidebar. Click to show the tables included in the database. Now, select all the tables and from the dropdown menu at the bottom select repair table or optimize table as you want. The system will automatically repair the tables once you have clicked on ‘repair table’.
Repair or Optimize database tables using the wp-cli
The WP-CLI or the wordpress Command LIne Interface is an excellent tool to manage your wordpress installation including the database. However, to manage your website using the CLI, you will first need to install it on your server and then you can start managing your blog using WP-CLI commands.
Install WP-CLI
You will first need to install the wp-cli on your server if you have not installed and configured it.
First you can download the wp-cli.phar using wget or curl
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Now, verify that it works:
$ php wp-cli.phar –-info
Now, you need to make the file excutable and move it somewhere in your PATH so you can run the cli commands by typing wp like – ‘wp plugin install’. To do that run the following commands:
$ chmod +x wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp
Now, run ‘wp –info’ to verify it works:
$ wp --info
You will receive an output similar to the following showing wp-cli has been installed:
OS: Linux 5.15.0-1028-aws #32-Ubuntu SMP Mon Jan 9 12:28:07 UTC 2023 x86_64
Shell: /bin/bash
PHP binary: /usr/bin/php8.1
PHP version: 8.1.2-1ubuntu2.11
php.ini used: /etc/php/8.1/cli/php.ini
MySQL binary: /usr/bin/mysql
MySQL version: mysql Ver 15.1 Distrib 10.6.12-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
SQL modes:
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /var/www/aim-blog/html
WP-CLI packages dir:
WP-CLI cache dir: /home/ubuntu/.wp-cli/cache
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.7.1
Now, you can use the wp-cli on your server to carry out various tasks related to wordpress and wordpress database.
Repair database using WP-CLI
To repair the database using the wp_CLI, all you need to do is to run the wp db repair command. The WP-CLI uses the credentials stored in the wp-config.php file to carry out these tasks. when you run the wp db repair command, the cli runs the mysqlcheck utility with –repair=true, using the credentials (host, db name, user and password) specified in the wp-config.php file.
To start repairing your database, ssh to your server.
Run the wp db repair command:
$ wp db repair --path=/var/www/html
At the end of the command, specify the path to the root folder. Otherwise, you can run the commands directly from the root folder.
$ cd /var/www/domain/public_html
$ wp db repair
Optimize wordpress mysql database using WP-CLI
You can opitimize your database tables in a similar manner as you repaired the database. You will need to run the wp db optimize command to start optimizing your database. When you run the wp db optimize command, the cli runs the mysqlcheck utility with ‘–optimize=true’ using the database credentials and hostname specified inside the wp-config.ph file.
To start optimizing your database, ssh to your server and run the command:
$ wp db optimize --path=/var/www/domain/public_html
Otherwise, you can run the command from the root folder. You will need to go to the root folder.
$ cd /var/www/domain/public_html
$ wp db optimize
The output will look like the following and at the end a message that your database has been successfully optimized:
$ wp db optimize
WordPressdb.wp_commentmeta
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_comments
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_links
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_options
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_postmeta
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_posts
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_term_relationships
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_term_taxonomy
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_termmeta
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_terms
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_usermeta
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_users
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_yoast_indexable
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_yoast_indexable_hierarchy
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_yoast_migrations
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_yoast_primary_term
note : Table does not support optimize, doing recreate + analyze instead
status : OK
WordPressdb.wp_yoast_seo_links
note : Table does not support optimize, doing recreate + analyze instead
status : OK
Success: Database optimized.
Run wordpress database backup and clear transients via wp-cli
when you are repairing the database, you can also clear all transients from your databse using the wp-cli. You have the option to clean only the expired transients or you can delete all transients.
To clean only the expired transients, run the following command:
$ wp transient delete --expired
It will clear the expired transients and you will receive a message like the following:
Success: 7 expired transients deleted from the database.
If you want to clear all the transients using the wp-cli, run the following command:
$ wp transient delete --all
Again, you will receive a similar output :
Success: 47 transients deleted from the database.
There are several plugins including WP-rocket that allow you to clear the transients from your wordpress dashboard. For example, when you check out the database tab in WP-Rocket, you might see a figure like 47 transients in your database. You can carry out the same process using the wp-cli without the need to use any plugin. If you want to backup your databse before making any changes, then run the following command:
$ wp db export
Optionally, you can add a name for the mysql file like mydb_backup.sql and run the command:
$ wp db export mydb_backup.sql
Success: Exported to ‘mydb_backup.sql’.
Later, if you need, you can use the backup to restore database by running wp db import command:
$ wp db import mydb_backup.sql
Success: Imported from ‘mydb_backup.sql’
Abhijeet Pratap is a passionate blogger with seven years of experience in the field. Specializing in business management and digital marketing, he has developed a keen understanding of the intricacies of these domains. Through his insightful articles, Abhijeet shares his knowledge, helping readers navigate the complexities of modern business landscapes and digital strategies.