Каково влияние соединений ODBC на базы данных MySQL? - PullRequest
1 голос
/ 29 мая 2011

У нас есть интернет-корзина покупок, в которой используется база данных MySQL, и мы хотели бы использовать Access 2007 для подключения к БД через связанные таблицы для создания различных пользовательских отчетов.Доступ для записи не требуется.

В настоящее время я тестирую старую базу данных MySQL и использую постоянное соединение ODBC DSN, которое остается открытым.Для написания отчетов и запросов мне нужен полный доступ к базе данных, и если я закрываю соединение, Access жалуется и не может получить какую-либо информацию о таблице, как ожидалось.

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

Мой общий вопрос: необходим ли подход базы данных devel / production?В чем заключаются проблемы (если есть) постоянно открытого соединения с активной базой данных MySQL для корзины покупок?

= Alan R.

1 Ответ

1 голос
/ 29 мая 2011

Соединения не являются поточно-ориентированными. Если несколько пользователей делятся соединением, это звучит как вызов мне неприятностей.

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

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

Вы должны держать соединения открытыми, только если вам необходимо: открыть соединение, выполнить операцию и закрыть соединение.

Ситуация с корзиной покупок интересная. Вместо того, чтобы держать соединение открытым все время, для среднего уровня был бы другой подход - установить сеанс и построить транзакцию на среднем уровне. Сохраняется в базе данных только после завершения полной транзакции, когда пользователь нажимает кнопку «купить».

...