Autoloaded options are read on every single request

Every request WordPress serves opens with one query that reads every option flagged autoload = yes and unserialises the lot into memory. That is a reasonable design for a few dozen settings. It is why a plugin that parks a cached remote feed in the options table charges you for that feed on every uncached page view, including the ones that never touch the plugin.

SELECT option_name, LENGTH( option_value ) AS bytes
  FROM wp_options
 WHERE autoload = 'yes'
 ORDER BY bytes DESC
 LIMIT 10;

-- option_name                      bytes
-- feed_importer_response_cache    892104
-- rewrite_rules                    41288
-- cron                              9210

The third argument to add_option() is the deprecated one and the fourth is the flag, so a non-autoloaded option is add_option( $name, $value, '', 'no' ) — easy to get wrong and easier to forget. update_option() cannot change the flag on a row that already exists, which means fixing an existing offender is a delete followed by an add; wp option delete and wp option add do that without opening a MySQL prompt. Running the query above is worth doing before profiling anything else on a site that feels slow — a megabyte of autoloaded data is a megabyte unserialised on every request, and finding it takes about a minute.