Вопрос об объединении подключения mysql: действительно ли это стоит того?

Я новичок в python. Получил код, который работает и понятен

my_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']
    for str in my_list:
        if 'abc' in str:
            print(str)
15
задан ʞɔıu 1 January 2009 в 19:32
поделиться

4 ответа

Нет никакой потребности волноваться об остаточном состоянии на соединении при использовании пула соединения SQLA, если приложение не изменяет connectionwide опции как уровни изоляции транзакции (который обычно не имеет место). Пул соединения SQLA выпускает connection.rollback () на соединении, когда его перепроверивший в, так, чтобы любое транзакционное состояние или блокировки были очищены.

возможно, что время соединения MySQL довольно быстро, особенно если Вы соединяетесь по сокетам Unix на той же машине. При использовании пула соединения Вы также хотите удостовериться, что соединения переработаны после некоторого промежутка времени, поскольку клиентская библиотека MySQL закроет соединения, которые неактивны больше 8 часов автоматически (в SQLAlchemy, это - pool_recycle опция).

можно быстро сделать некоторое террасирование пула соединения по сравнению с не с приложением SQLA путем изменения реализации пула от значения по умолчанию QueuePool к NullPool, который является реализацией пула, которая ничего на самом деле не объединяет - это соединяется и разъединяется для реального, когда проксированное соединение получено и позже закрыто.

10
ответ дан 1 December 2019 в 04:01
поделиться

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

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

6
ответ дан 1 December 2019 в 04:01
поделиться

Короткий ответ: необходимо сравнить его.

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

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

2
ответ дан 1 December 2019 в 04:01
поделиться

Пул соединения ускоряет вещи в том том, что Вы не имеете, создают java.sql. Соединение возражает каждый раз, когда Вы делаете запрос базы данных. Я использую пул соединения Tomcat для mysql базы данных для веб-приложений, которые делают много запросов, во время высокой пользовательской нагрузки существует значимое улучшение скорости.

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

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