Я использую mod_perl для своего веб-приложения. В настоящее время я планирую использовать базу данных mysql по всей сети. В каждом запросе CGI к display_customer_transaction.cgi, мой скриптКак я могу использовать постоянное соединение базы данных DBIC в mod_perl?
- Открывает соединение с базой данных через сеть
- Выполнить запрос в базе данных с помощью SQL Statement
- Analysis данные, полученный из базы данных
- Распечатайте данные в формате HTML
- Закрыть соединение с базой данных
После некоторого профилирования, я понимаю, шаг (1) является узким местом. Следовательно, я хочу избежать открытия и закрытия соединения с базой данных для каждого запроса CGI. Мое желание состоит в том, что если мой первый запрос CGI открывает соединение с базой данных, мой второй входящий запрос CGI (от другого клиента) может повторно использовать первое подключение к базе данных.
Я попытался использовать Google для «Постоянного соединения базы данных DBIX», но вряд ли найду соответствующий результат. (Редактировать: это потому, что он называется DBIC или DBIx :: Class, а не DBIX.)
Я также нашел соответствующую информацию, используя Apache::DBI (Тем не менее, я намерен использовать DBIX, а не Apache :: DBI). Есть некоторая информация, которая меня смутила:
У модуля Apache :: DBI все еще есть ограничение: он поддерживает постоянное подключение баз данных на основе каждого процесса.
Все это время моя концепция о том, как Apache служит запрос CGI является то, что
- Apache всегда будет порождать новый процесс, чтобы служить новый входящий запрос CGI. Всякий раз, когда интерпретатор Perl завершает выполнение Perl-скрипта, процесс будет мертв.
Таким образом, если модуль Apache :: DBI может поддерживать постоянную связь с базой данных для каждого процесса, как мой второй запрос CGI может повторно использовать соединение, открытое первым запросом CGI?
Но вернемся к моему первоначальному вопросу. Как я могу использовать постоянное соединение базы данных DBIX в mod_perl?
Не могли бы вы прояснить, что вы подразумеваете под DBIX, пожалуйста? Это полное пространство имен, полное модулей (DBIx: :) или что-то еще? – castaway
Я имею в виду: http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class.pm –