I used to pick out mirrors manually and had servers very close to me, but I recently started using reflector to automate the process, but the mirrors it chooses is absolute dogshit and gives me really slow speeds.
# Reflector configuration file for the systemd service.
#
# Empty lines and lines beginning with "#" are ignored. All other lines should
# contain valid reflector command-line arguments. The lines are parsed with
# Python's shlex modules so standard shell syntax should work. All arguments are
# collected into a single argument list.
#
# See "reflector --help" for details.
# Recommended Options
# Set the output path where the mirrorlist will be saved (--save).
--save /etc/pacman.d/mirrorlist
# Select the transfer protocol (--protocol).
--protocol https
# Select the country (--country).
# Consult the list of available countries with "reflector --list-countries" and
# select the countries nearest to you or the ones that you trust. For example:
--country Bangladesh,India
# Use only the most recently synchronized mirrors (--latest).
--latest 5
# Sort the mirrors by synchronization time (--sort).
--sort age
i believe that is what will be used by reflector if it is enabled/started as a systemd service. but, i think, that'll not be used if you're just calling it on the command-line. in that latter case, i think you must supply (those) command-line switches on ...the command-line. (maybe)
Been a while since I mucked with reflector, but you don't seem to be prioritizing faster mirrors whatsoever. Try --sort rate instead. If that's not fast enough I'd also increase your --latest up to maybe 15 so that you have higher odds of a fast mirror being in the group of just-updated mirrors.