Every option with autoload set to yes is fetched in one query on every page load, so a plugin storing a megabyte there makes every request slower forever.
SELECT option_name, ROUND(LENGTH(option_value)/1024) AS kb
FROM wp_options WHERE autoload = 'yes'
ORDER BY LENGTH(option_value) DESC LIMIT 10;
SELECT ROUND(SUM(LENGTH(option_value))/1024) AS total_kb
FROM wp_options WHERE autoload = 'yes';
-- anything over about 800 kB is worth investigating
This is the first query to run on any slow WordPress site and it is routinely educational — a cached API response, a serialised log, or an abandoned plugin’s data sitting in the autoload set. update_option with an explicit false as the third argument keeps something out of it, and changing an existing option’s flag requires deleting and re-adding it. A transient with a TTL over a day is autoloaded, which almost nobody knows.