#mysql #connection #odbc #persistent
#mysql #подключение #odbc #постоянный
Вопрос:
У нас есть онлайн-корзина покупок, которая использует базу данных MySQL, и мы хотели бы использовать Access 2007 для подключения к БД через связанные таблицы для создания различных пользовательских отчетов. Доступ на запись не потребуется.
В настоящее время я тестирую со старой базой данных MySQL и использую постоянное подключение ODBC DSN, которое остается открытым. Для написания отчетов и запросов мне нужен полный доступ к базе данных, и если я закрываю соединение, Access жалуется, и я не могу получить информацию о таблице, как ожидалось.
Одним из решений этого является дублирование активной производственной базы данных и выполнение всей разработки на ней, а затем переключение DSN на активную базу данных и открытие и закрытие соединения для каждого отчета / запроса.
Мой общий вопрос таков: необходим ли подход к разработке / производственной базе данных? Каковы проблемы (если таковые имеются) с постоянно открытым подключением к активной базе данных MySQL shopping cart?
=Алан Р.
Ответ №1:
Соединения не являются потокобезопасными. Совместное использование соединения несколькими пользователями звучит для меня как напрашивание на неприятности.
Базы данных имеют ограничение на количество одновременных подключений, которые они могут принимать. И одновременные пользователи возлагают дополнительную нагрузку на разработчиков, чтобы указать надлежащую изоляцию между транзакциями. Вам нужно сбалансировать скорость реагирования с точностью; проведите некоторое исследование по изоляции и ACID.
Если вы должны поддерживать соединение открытым, единственный способ масштабирования для большего числа пользователей — дублировать базу данных. Это создает свои собственные проблемы, связанные с обеспечением синхронизации данных между всеми экземплярами.
Вы должны поддерживать соединения открытыми только до тех пор, пока это необходимо: откройте соединение, выполните операцию и закройте соединение.
Интересная ситуация с корзиной покупок. Вместо того, чтобы поддерживать соединение открытым все время, другим подходом было бы для среднего уровня установить сеанс и создать транзакцию на среднем уровне. Доступ к базе данных сохраняется только после завершения полной транзакции и нажатия пользователем кнопки «купить».
Комментарии:
1. Этот доступ к базе данных корзины покупок полностью выходит ЗА рамки повседневной функции корзины. Это исключительно для создания пользовательских отчетов в базе данных. Было бы настроено единственное приложение Access для использования базы данных cart в качестве связанных таблиц. Во время разработки отчета мне нужно открытое соединение, но во время выполнения отчета я мог бы его открывать / закрывать.