0

我必须第一次创建一个 mysql 数据库以供多个应用程序并行使用。到目前为止,我对 mysql 数据库的唯一经验是单个程序(例如网络服务器)查询数据库。现在我正在进入一个场景,我将拥有几个 CXF java servlet 类型的程序,以及在相同模式上编辑和读取的后台服务器。我在所有实例中都使用 Connector/J JDBC 驱动程序连接到数据库。

我的问题是:我需要做什么才能确保并行访问不会成为问题。我意识到我需要在适当的地方使用交易,但我真正迷失的地方是管理。例如。每次 servlet 完成一项工作时,我是否需要关闭连接?每个访问数据库的程序都需要一个唯一的用户吗?我必须对我的 Connector/J 对象做些什么吗?我必须以不同的方式声明我的表吗?我错过了什么还是我没有想到什么?我对如何处理事务和 SQL 本身有一个很好的想法,但是当谈到设置我的数据库时我需要做的事情时,我很迷茫。

4

1 回答 1

2

您应该维护一个连接池。在几百毫秒的数量级上创建连接真的很昂贵。因此,对于大容量应用程序,缓存和重用它们是有意义的。

对于您的 servlet,它取决于您使用的容器。JBoss 之类的东西将提供池作为容器的一部分。可以通过数据源定义来定义,通过JNDI访问。其他容器,如 tomcat,可能依赖于 C3PO 之类的东西。

这些框架中的大多数都返回 JDBC 连接的自定义实现,这些实现实现了 close() 方法,其逻辑将连接返回到池。您应该熟悉具体实施的细节,以确保您以受支持的方式做事

至于并发方面的考虑,您应该熟悉乐观/悲观锁定和事务隔离级别的概念。这些都有权衡,只有在给定应用程序的操作环境时才能确定正确答案。

考虑到用户,大多数应用程序都有一个代表应用程序的用户,称为读/写用户。此用户应仅有权从与您的应用程序关联的表、索引、序列等中读取和写入记录。应用程序的所有实例都将在其连接字符串中指定此用户。

如果您熟悉上述概念,您将完成 95% 的工作。

还有一件事。正如管理方面的评论所指出的,您的数据库引擎是一个重要的考虑因素。您应该熟悉这些差异和调整/配置选项。

于 2012-04-25T20:34:13.917 回答