Подключение mysql, я могу оставить это открытым?

  • BBEdit заставляет всех других редакторов быть похожими на Блокнот.

Это обрабатывает гигантские файлы легко; большинство текстовых редакторов (TextMate особенно) замедляется к мертвой проверке или просто отказывает, когда подарено большой файл.

regexp и несколько-файлов Находят, что диалоговые окна бьют что-либо еще для удобства использования.

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

BBEdit является в большой степени AppleScriptable. Все может быть задано сценарием.

В 9,0, BBEdit имеет завершение кода, проекты и тонну других улучшений.

я, прежде всего, использую его для HTML, CSS, JS и Python, где это чрезвычайно сильно. Некоторые более неясные языки не также поддерживаются в нем, но в большинстве целей это фантастически.

единственный devs я знаю, кому нравится TextMate, вентиляторы Ruby. Я действительно не получаю обращение, незначительно лучше, чем TextWrangler (свободный маленький брат BBEDIT), но если Вы тратите деньги, можно также купить лучший инструмент для нескольких долларов больше.

  • jEdit действительно имеет достоинство того, чтобы быть межплатформенным. Это совсем не столь же хорошо как BBEdit, но это - редактор компетентного программиста. Если Вы когда-либо сталкиваетесь с системой Windows или Linux, удобно иметь один инструмент, Вы знаете что работы.

  • Vim прекрасен, если необходимо работать по ssh и удаленной системе, или компьютер не может сделать X11. Я раньше любил Vim для простоты редактирования больших файлов и выполнения повторных команд. Но в эти дни, это - голос "против" для меня с раздражением из-за нестандартного поиска & замена (использующий (нечто) группы вместо (нечто), и т.д.), крайне плохая мультиобработка документов, отсутствие представления браузера проекта/диска, отсутствие AppleScript и причудливая обработка мыши в версии GVim.

13
задан Pieter888 10 November 2009 в 12:22
поделиться

11 ответов

Оставить соединение открытым на некоторое время нормально, если:

  1. у вас не так много одновременно простаивающих соединений, чтобы вы достигли лимита соединений MySQL;

  2. вы не оставляете его открытым на часов , ничего не делая. Соединение MySQL по умолчанию wait_timeout составляет 8 часов; оставьте соединение неактивным на это время, и когда вы в следующий раз воспользуетесь им, вы получите ошибку «Сервер MySQL ушел».

11
ответ дан 1 December 2019 в 22:57
поделиться

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

0
ответ дан 1 December 2019 в 22:57
поделиться

Поскольку вы используете ADO.NET, вы можете использовать встроенные в ADO.NET возможности пула соединений . На самом деле, позвольте мне уточнить это: вы должны всегда использовать встроенные в ADO.NET возможности пула соединений. Таким образом вы получите среду выполнения .NET для прозрачного управления вашими соединениями в фоновом режиме. Он будет держать соединения открытыми некоторое время, даже если вы их закрыли, и повторно использовать их, если вы откроете новое соединение. Это действительно быстро.

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

Вам нужно создавать соединения локально только тогда, когда они вам нужны, поскольку они объединены в фоновом режиме, поэтому нет накладных расходов на создание нового соединения:

using (var connection = SomeMethodThatCreatesAConnectionObject())
{
    // do your stuff here
    connection.Close(); // this is not necessary as
                        // Dispose() closes it anyway
                        // but still nice to do.
}

Вот как вы

9
ответ дан 1 December 2019 в 22:57
поделиться

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

Поскольку производительность падает,

0
ответ дан 1 December 2019 в 22:57
поделиться

На мой взгляд, не рекомендуется держать соединения открытыми. Еще один аспект, который говорит в пользу закрытия соединений каждый раз, - это масштабируемость. Теперь было бы неплохо оставить его открытым, но что, если вашим приложением пользуется вдвое и втрое больше пользователей. Боль в шее - вернуться и изменить весь код. (я знаю, что сделал это: -)

0
ответ дан 1 December 2019 в 22:57
поделиться

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

Но, чтобы расширить ответ от bobince, - просто потому что вы не закрываете соединение, не предполагайте что что-то еще не будет: может быть тайм-аут соединения, могут быть проблемы с подключением или сто и одна другая причина, по которой ваше соединение умирает. Вы должны предположить, что соединение может отсутствовать, и добавить логику в код для этого случая исключения.

0
ответ дан 1 December 2019 в 22:57
поделиться

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

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

0
ответ дан 1 December 2019 в 22:57
поделиться

Одна вещь, которую я еще не увидел в других ответах: если вы подготовили операторы или временные таблицы, они могут блокировать ресурсы сервера до тех пор, пока соединение не будет закрыто. Но с другой стороны, может быть полезно поддерживать связь в течение некоторого времени вместо того, чтобы воссоздавать их каждые несколько мгновений.

0
ответ дан 1 December 2019 в 22:57
поделиться

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

0
ответ дан 1 December 2019 в 22:57
поделиться

Да, при условии:

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

В основном это требует большого внимания к случаям сбоя и правильному восстановлению; подключать и отключать часто намного проще.

0
ответ дан 1 December 2019 в 22:57
поделиться

< br/> Действительно может пройти любой путь. Но если вы находите себя использовать его, чтобы скорректировать интервал абзаца orsomething как это, то вы действительно должны спросить себя «есть ли причина, почему im использовать разрывы вместо применения класса для корректировки полей?» & nbsp; с другой стороны редко, если когда-либо имеет какой-либо смысл вне абзаца ( < p/> ) и половина времени не сильно используется для него, как как использование text-indent предпочтительнее для отступления первого абзаца и многое для chigirn Редакторов везде im полностью противоположно двойному пространству, предваряющему сенетенции в Интернете - насколько это касается, что

-121--4716610-

Если вы найдете место для подключения, CWnd:: LockWindowUpdates () предотвратит появление любого чертежа до тех пор, пока вы не разблокируете обновления.

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

Необходимо найти команды перерисовки, которые слишком часто вызываются во время изменения размера. Если элементы управления окна вызывают RedrawWindow () с указанным флагом RDW _ UPDATENOW , то они будут перекрашены. Однако можно удалить этот флаг и вместо него указать RDW _ INVALIDATE , что позволяет элементу управления аннулировать окно без перекраски. Он будет перекрашиваться в свободное время, оставляя дисплей свежим без выделения.

-121--2078027-

Я думаю, что если есть механизм объединения соединений, лучше закрыть соединение.

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

0
ответ дан 1 December 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: