No, WordPress doesn't add database indexes automatically.
First, convert your tables to InnoDB if you haven't already.
Second, make sure you're running a recent MySQL version. (MySQL 8+, MariaDB 10.2+). If you use a hosting provider and they can't get a recent MySQL version, fire them.
Third, use a database cleaner plugin to eliminate obsolete junk (drafts of posts, transient data in wp_options, and all that) from your database. Busy WordPress instances can accumulate a lot of junk, and it just slows things down. Advanced Database Cleaner is a good one. There are many others.
Fourth, run these changes to wp_postmeta's keys to help your performance a lot.
ALTER TABLE wp_postmeta ADD UNIQUE KEY meta_id (meta_id);
ALTER TABLE wp_postmeta DROP PRIMARY KEY;
ALTER TABLE wp_postmeta ADD PRIMARY KEY (post_id, meta_key, meta_id);
ALTER TABLE wp_postmeta DROP KEY post_id;
ALTER TABLE wp_postmeta DROP KEY meta_key;
ALTER TABLE wp_postmeta ADD KEY meta_key (meta_key, post_id);
Rick James and I have published a WP plugin to do all that, and to add better indexes to other tables.