Every month I download 280,000 disambiguation pages via the API into a 250 MB gz file. That is then transformed by a custom script to pull the first link from every list entry and loaded into a principle_links table on u2815__p. This significantly improves database query results involving disambiguation pages.
MariaDB [enwiki_p]> DESCRIBE u2815__p.principle_links; +-----------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+------------------+------+-----+---------+-------+ | pr_from | int(10) unsigned | NO | PRI | NULL | | | pr_title | varbinary(255) | NO | PRI | NULL | | | pr_latest | int(10) unsigned | NO | | NULL | | +-----------+------------------+------+-----+---------+-------+