Lab 22 · Performance

WordPress: restore only the table that broke, in 3 seconds instead of 2 minutes

Date: Oct 18, 2026Server: five real WordPress databases, 1.2 to 13 GBReading time: 4 minTopic: Performance
The question

A WordPress plugin wiped the site’s settings. A WooCommerce update broke the product data. An import changed the wrong posts. The problem is almost always in a single table of the WordPress database, and restoring the whole database also undoes everything the site did since the last backup: orders, comments, sign-ups. Can you bring back only the table that broke? How fast? Does it come back the same?

Result
3.3 sto bring back wp_options (the WordPress site settings) from a 9 GB database, instead of 121 s taking the table out of the whole database
100%of the restored WordPress tables identical to the original, checked by checksum, in both formats

Why it matters to whoever runs the server

  • Restoring the whole WordPress database undoes the orders, comments and sign-ups made since the backup. Bringing back only the table that broke doesn’t.
  • 3.3 s instead of 121 s for the wp_options of a 9 GB database: the site is back in seconds.
  • Before touching anything, Salvo keeps a copy of the database as it is: if the restored table isn’t the right one, you can go back.
Restoring a WordPress tableIn seconds: one file per database vs one file per table
Source: Salvo Lab · five real WordPress databases · Oct 18, 2026 · provisional measurement (daytime)
The WordPress tableOne file per databaseOne file per table
wp_options (1.7 MB), 9 GB database121 s3.3 s
wp_postmeta (99 MB), 9 GB database134 s14 s
wp_options (5.5 MB), 1.3 GB database17 s4.1 s
wp_postmeta, the largest table (361 MB, 28% of the 1.3 GB database)42 s32 s
wp_posts (95% of the 9 GB database)783 s829 s
The whole WordPress database (9 GB)893 s922 s
Account backup (5 sites, 17.6 GB of databases)691 s678 s
Space on the storage2.03 GB2.03 GB

Method

Five databases from real WordPress sites, 1.2 to 13 GB and 63 to 282 tables each (a large blog and corporate sites; none was a WooCommerce store), in one account on the test server.

Salvo now has two formats for databases in the backup, chosen when creating the job: one file per database, the default, or one file per table: the same snapshot of the database, taken all at once (every table from the same instant, as WordPress expects), stored table by table.

The account was backed up in both formats, each to a separate storage, to measure the space of each one. All from the Salvo panel in WHM: creating the jobs, running the backup and restoring the tables.

Each table was restored to a new database, next to the original, and checked by checksum against the original: all identical, in both formats.

Why the gain changes: in the one-file format, Salvo has to fetch the whole database from the storage to take one table out of it; in the per-table format, it fetches only that table. The MySQL import takes the same time in both. So the gain grows the smaller the table is compared with the database, and disappears when the table is almost the whole database, like the wp_posts of a very large blog.

What we decided

The tables that break most often in WordPress (wp_options, wp_postmeta, users, comments) are small compared with the database, exactly where the gain is largest. But the per-table format weighs more on the server during the backup: it uses temporary space the size of the largest database and raises the load. That’s why it’s the admin’s choice, per job, and the default is still one file per database. On restore, from the panel, the table can go to a new database alongside, to compare before swapping, or replace just that table in the site’s database; before touching anything, Salvo keeps a copy of the database as it is.

?
What we don’t know yetMeasured in the daytime, once per case and on two of the five databases (all five went into the backup). When the storage is at its busiest, fetching the whole database tends to take longer, and the per-table format’s advantage should grow; that measurement is planned. None of the databases was a WooCommerce store: what applies to WooCommerce comes from it keeping products in the same tables measured (wp_posts and wp_postmeta). Routines, events and views are not included when restoring a single table (standard WordPress doesn’t use them).
Want to see Salvo on your server?Join the beta waitlist. We’ll let you know when there’s a spot.

How it connects to the other labs

Integrity checked file by file
20 sThe whole account restored on another server: domains, email, identical database and grantsLab 11 · Oct 15, 202699.96%Disaster recovery: 10 whole accounts on another server, 99.96% of customer files identicalLab 16 · Oct 16, 2026100%Restoring a cPanel backup through Salvo: four times, the same result, and 100% of messages identicalLab 18 · Oct 17, 2026~2 minThe account is gone: back, whole, from the backup, in about 2 minutesLab 19 · Oct 17, 20265 of 5Restore only what you need: a database, a mailbox, a few files, all back exactly as they wereLab 20 · Oct 17, 20265.2×We improved Salvo’s restore: a 10 GB account back in 5 min 45 s, at the storage’s worst hourLab 21 · Oct 19, 202699.98%WordPress backup with email: 6 real sites restored by Salvo and by JetBackupLab 23 · Oct 19, 2026250 sRestoring WordPress with Salvo faster than with the cPanel package: 6 real sites, one and many accounts at a timeLab 24 · Oct 19, 2026
salvo. Backup for hosting servers. A GK2 product.
Product
Lab
Salvo
Language
© 2026 GK2We use analytics cookies (Google Analytics).salvobackup.com/lab/wordpress-restore-only-the-table-that-broke/