2013-03-08 2 views
0

Так что этот вопрос - вопрос хорошей идеи/плохая идея. Я использую соединение MySQL много раз за короткое время. Я создал свои собственные вызовы методов для обновления значений, вставки, удаления и т. Д.Должен ли я закрывать соединение mySQL между вызовами метода?

Я использую одно и то же соединение для каждого из этих методов, но я открываю и закрываю соединение при каждом вызове. Проблема в том, что мне нужно проверить, чтобы соединение не было открыто, прежде чем я попытаюсь открыть его снова.

Итак, возникает вопрос: существует ли опасность только в том, что соединение MySQL открыто между вызовами методов? Я хотел бы просто оставить его открытым и, возможно, улучшить скорость, пока я нахожусь в нем.

Спасибо за любой совет!

+1

Нет. Единственный раз, когда вам когда-либо понадобится закрыть соединение, - это когда вы ** KNOW ** вы закончили использовать его. Обычно сценарий должен открывать только одно соединение, а затем использовать его на протяжении всего срока действия этого скрипта. Это, как говорится, могут быть случаи, когда вы хотите начать с известного хорошего/чистого соединения, и вы МОЖЕТЕ закрыться в этих случаях. –

ответ

1

Вообще говоря, нет, вы не должны закрывать его, если в том же классе/библиотеке/области кода вы просто собираетесь открыть его снова.

Это зависит от используемой библиотеки толлинга/соединения. если вы используете объединение пулов, некоторые библиотеки фактически не закрывают соединение (сразу), а возвращают его в пул.

Единственный комментарий, который я буду использовать для повторного использования соединения, заключается в том, что если вы используете переменные, которые являются конкретными соединениями, эти переменные все равно будут действительны для одного и того же соединения и могут вызвать проблемы позже, если другой запрос использует один из них и он имеет значение из прошлого запроса, который больше не зависит от него, однако это также вызывает вопросы о пригодности переменной в первую очередь.

Открытие соединения - это что-то в пределах MySQL, довольно легкое (по сравнению с другими базами данных), однако вы не должны создавать дополнительную работу, если можете этого избежать.

Смежные вопросы