Advice on location lists (Country, Region, City)

I have an app that allows users to add a list of locations. I have a database thing for all the countries, another for all the regions per country, and another for all the cities in the world that link to each region and country. I don’t use option sets for this data since the lists are quite long. -counties around 255 items and then it goes in thousands for states/regions and then tens of thousands for cities. Via a repeating group I allow users to select a country and then I populate the states or regions and then after selection, I look up all the cities. Or one could just type in a city and I look it up and reverse back out to the country. It works okay. My question is would be be more efficient to use something like to do an API call to get this info rather than a local db lookup? Any other tips and tricks for handling location data/things where users need to choose counties and cities and save them?