Currently, best practices are to receive coins to an address only once – Any reasonably new wallet will generate a new receiving address for you if the previously displayed one has already received coins.
However, there are scenarios where an address might receive coins multiple times, such as being a saved address on an exchange, stored with an automatic payout system (mining pools etc), or just intentionally giving the same address to multiple people who send you coins.
In such cases, an address has multiple utxos, possibly of varying sizes, associated with it.
Additionally, if you also use your wallet normally have have many other addresses with just a single transaction, this one address with many transactions could result in coin selection algorithms spending this address’ coins along with coins sent to other, single-use addresses, thereby linking them as belonging to the same wallet.
avoidpartialspend is a configuration option that tells the coinselection system to spend all utxos on a single address before attempting to source utxos from other addresses (which may still be necessary depending on the amount being sent). This ensures that, as much as possible, the utxos selected minimize the number of individual addresses that are linked together for a single transaction. However, this comes at the cost of a higher transaction fee due to potentially larger transaction sizes, and sub optimal utxo selection as opposed to selecting the best input(s) for the amount being sent.
This does improve privacy to some extent. However, as notes, it is not a complete solution, as future utxos to that address may be used in other transactions that link them to more wallet addresses, even after this process.
Article First Published here