Мы провели некоторый тест, прежде чем решить, в какую сторону идти. Я имею в виду между ConnectionAlwaysOpen или ConnectAndDisconnectEachTime.
Как видно из .NET с SQL Server (никогда не пробовал с MySQL), не было видимого снижения производительности ни в одном из подходов (ничего удивительного, поскольку нижние уровни в действительности не отключаются немедленно в сценарии ConnectAndDisconnectEachTime).
Но была небольшая разница, которая заставила нас выбрать ConnectionAlwaysOpen. Причиной была поддержка Транзакции.
Если вы намереваетесь использовать транзакции, то подключение / отключение НЕ будет работать, я думаю, очевидно, почему.
ConnectionAlwaysOpen, конечно, можно улучшить с помощью существующих пулов соединений или некоторого ручного отложенного кэша пулов соединений, но основная идея остается неизменной. С другой стороны, в веб-приложении этот подход немного сложнее реализовать и поточно-ориентирован, но он может стоить усилий.