first off are you sure it is the database that is slowing you down?
i test this by writing the time to a variable, looping through 100s of queries/connections in the code then getting another time variable,
subtract the two times to see how long the queries took?
if you find it is still the db server that is the slow point, then optimising your queries can be very important (do a search on this - the way complex queries are written can make a very big difference)
with mysql i open then close it as quick as possible but i have very fast pages on shared host environments that are making 6 db connections, so i don't think that in itself is a problem [side note - with sqlServer i just open one connection and reuse it on the page as often as i need then close it at the end of the page]
... of course the db server could just be overloaded with other people using it if you are sharing it, even if your own queries are honed to perfection!