Eu usaria um IP público apenas como último resultado.
Eu acho que em ordem de melhor conexão com o mysql seria
- soquete unix (pipe nomeado nas janelas)
- localhost (127.0.0.1)
- ip (interno) privado
- ip público
IMO, esta lista está na ordem de todos os fatores importantes: velocidade, facilidade de configuração e segurança.
Conforme você desce a lista, você tem que abrir mais e mais do seu servidor e mysql, o que pode levar a mais pontos de ataque. E como mencionado por ErikA, você também apresenta mais possíveis pontos de falha.