It does work with multisite. But it doesn’t have a way to add the high-performance keys for all subsites at once. You can do them one at a time: fine for a few subsites, but thousands will be inconvenient.
You may want to use its wp-cli option, and maybe even create your own SQL file to do the indexing based on the output from
wp index-mysql --dryrun
I’m very busy today; I can answer more questions for you or help you get this going.
As you know your database has multiple tables for each subsite. We need to reindex, therefore, six tables for each subsite plus the user and usermeta tables.
Following up: with wp-cli you can do something like this
sudo -u www-data wp index-mysql enable --all --blogid=0sudo -u www-data wp index-mysql enable --all --blogid=1sudo -u www-data wp index-mysql enable --all --blogid=2
and so forth to index all your subsites. Or if it’s easier you can use the --url= parameter to specify which subsite to index. At any rate, the plugin indexes one subsite at a time.
Or you can say
sudo -u www-data wp index-mysql enable --all --blogid=1 --dryrun
That gets you the SQL data definition language (DDL) statements to run for blogid 1. Then maybe you, or somebody, can look at that and script all the DDL for all your sites. It’s pretty standardized stuff, especially if your subsites don’t have all sorts of unpredicatable plugins installed that fiddle with your database definition.
I’m sure you’re aware this will be a bit of an operations project to implement.
(It would be hilariously timeout-prone to provide a way to index thousands of sites from the web dashboard.)
Don’t hesitate to write back if you need more support on this.
And, it would be *very helpful indeed* if you could capture a monitor with the plugin and upload it. I’d love to look for query optimization opportunites with large wp_blogs, wp_site, and wp_sitemeta tables. A monitor will let me see which queries are slowest.
