Rebuilding the tables manually in phpMyAdmin
If your host kills long-running queries and you have no SSH access, the admin Rebuild button will keep dying part way through and wp sss rebuild is not available to you. The Advanced tab has a third route for exactly this case: a block of SQL you can copy into phpMyAdmin (or Adminer, or any SQL client) and run by hand, with no PHP timeout involved.
If you have SSH, use wp sss rebuild instead. It is faster, it is one command, and it finishes the job on its own. The manual route exists for people who cannot.
The steps
- Go to Super Speedy Search > Advanced and find Manually Initialise the tables.
- Choose Normal rebuild or Full rebuild (see below).
- Copy the whole textarea.
- Paste it into phpMyAdmin’s SQL tab and run it.
- Come back to the Advanced tab and click Mark complete manually. This step is not optional.
Normal or full?
The two radio buttons above the textarea produce the same two rebuilds as the buttons at the top of the page:
- Normal rebuild rebuilds the search index and leaves an existing suggestions table alone. Much shorter, and the right choice for a routine refresh.
- Full rebuild rebuilds the suggestion tables as well. Use it after changing anything on the Suggestions tab, after a bulk import, or when suggestions look out of date.
Pick the one you want before copying – the textarea content changes with the choice.
Why you must click “Mark complete manually”
A rebuild ends with steps that only PHP can do, and pasted SQL cannot:
- recording the schema version, so the search runtime knows which columns exist
- refreshing the object cache, so a site on Redis or Memcached stops serving stale settings
- building the taxonomy combination URLs, if you use that feature
Skip the click and the SQL will have run correctly while the site carries on using the old schema. Mark complete manually runs exactly those steps and nothing else. The button reports what it did, and says so if it failed.
It is safe to run twice
Hosts that kill long queries tend to kill them repeatedly, so the realistic sequence is: paste, watch it die, paste the whole thing again. From 5.58 that is safe.
Every statement that creates an index is written in a form that checks whether the index already exists and skips it if so, and the same applies to the suggestions language column. Re-running prints a few “skipped: index … already exists” notes and carries on. Before 5.58 the second paste aborted on #1061 Duplicate key name with the rebuild half done.
The rebuild builds a staging table alongside your live search table and only swaps it in with an atomic rename at the very end. A rebuild that dies part way through never swaps, so your existing search carries on serving the whole time.
Errors you might have seen before 5.58
Both of these are fixed, and both were reported by customers using this route:
#1064 ... near '__SSS_PHP_TASK:finalise_rebuild__' – the last line of the pasted SQL was a marker telling the plugin to run PHP, not an SQL statement, and phpMyAdmin rejected it. The textarea now contains only SQL.
#1061 Duplicate key name – the second paste tried to create indexes the first paste had already made. Every conditional statement is now self-checking.
If you still see either of these, you are on an older version – update the plugin and copy the SQL again.

Comments