template.ParseFiles() vs template.ParseGlob()

I am right now doing like this.

t := template.ParseGlob("./templates/*.html)

//somewhere (getting this t and passing to http router)
t.ExecuteTemplate(w, "index.html", data)

I am thinking that ParseGlob will parse all the template files at once. So everything will be parsed and be ready to be served when called by the ExecuteTemplate.

Instead of creating the template variable “t”

//I can write in the following way.
//on index router
t := template.ParseFiles("./templates/index.html)
t.Execute(w, data)

On every router, I have to parse the required files.
Which one is efficient?

After thinking a while, I believe, ParseGlob is the best solution. I can’t think a real usage for ParseFiles in real world. We have to Parse All the files once, and use it frequently.

r.Get("/", func(w http.ResponseWriter, r *http.Request) {
//writing parse files here is not a good solution. It will parse the same file every time when a request is received. 

Like opening database somewhere and using it everywhere, we need to ParseGlob template file at one place and use it everywhere.

Correct me if i am wrong