锁定老帖子 主题:mysql的jdbc驱动分析
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-05-14
Pre
cheney_love 写道 你的类图很漂亮啊,用什么画的
好像是EA吧 |
|
返回顶楼 | |
发表时间:2010-05-16
lookdd1 写道 whaosoft 写道 看来lz要好好学习了哦!~
恭喜您,您获得了javaeye2009年度1-6月份"水王"荣誉称号,您常年活跃于各大板块,坚持灌水为主,讨论为辅,始终保持0分的纯洁和神圣,希望您能将这种精神持之以恒的保持,即使每天一份Javaeye小测验也不动摇自己的信念。 那哥们以后能不能说句有用的话,在这浪费je的数据库空间。 |
|
返回顶楼 | |
发表时间:2010-06-27
楼主MM现在还在研究MySQL JDBC Driver吗?
关于replication和loadbalace的问题最好把驱动的版本换到最新的5.1.12吧, 5.0.6估计太老了,从5.1.11开始, ReplicationConnection类的实现改过了, 之前对于一个master、多个slave的情形,slave之间是不会进行负载均衡的, 因为在ReplicationConnection类的构造函数中它都用了"jdbc:mysql://"这样的url前缀, 从5.1.11开始变成了"jdbc:mysql:loadbalance://"了,这样多个slave之间可以实现负载均衡, 目前MySQL JDBC Driver有两种负载均衡策略:random 和 bestResponseTime, 默认是random,当然可以通过“bestResponseTime”属性改变它。 关于replication和loadbalace的例子在MySQL JDBC Driver的文档上有: "4.6. Using Master/Slave Replication with ReplicationConnection" 但是MySQL JDBC Driver这些有关replication和loadbalace的实现还是很弱, 比如还不能自动做到master、slave切换, 读写分离必须要用户明确调用setReadOnly, 我最近也一直在看MySQL JDBC Driver的源代码,主要是想解决一些大并发相关的问题。 P.S.1: 关于"server-side prepared statement", 首先要把"useServerPrepStmts"属性设为true, 然后MySQL Server的版本要>=4.1.0才能启用, 但是有个例外: MySQL Server 5.0.0 到 MySQL Server 5.0.3这些版本的"server-side prepared statement"不能正常工作, 所以不支持"server-side prepared statement"。 (这个细节在ConnectionImpl类的initializePropsFromServer()方法中可以找到) 我的感觉是: MySQL Server的不同版本之间真的很折腾, MySQL JDBC Driver整个实现经常在干判断版本号的事。 P.S.2: MySQL 5.1的官方文档上说, 只有InnoDB存储引擎才支持XA。 P.S.3: MySQL JDBC Driver 5.1.12搞了160多个配置属性, 那个since版本号是MySQL JDBC Driver的版本,不是MySQL Server的版本, 这个since版本号在源代码实现中没意义的。 |
|
返回顶楼 | |