论坛首页 Java企业应用论坛

mysql的jdbc驱动分析

浏览 39784 次
该帖已经被评为精华帖
作者 正文
   发表时间:2010-05-14  
Pre
cheney_love 写道
你的类图很漂亮啊,用什么画的


好像是EA吧
0 请登录后投票
   发表时间:2010-05-16  
lookdd1 写道
whaosoft 写道
看来lz要好好学习了哦!~


恭喜您,您获得了javaeye2009年度1-6月份"水王"荣誉称号,您常年活跃于各大板块,坚持灌水为主,讨论为辅,始终保持0分的纯洁和神圣,希望您能将这种精神持之以恒的保持,即使每天一份Javaeye小测验也不动摇自己的信念。



那哥们以后能不能说句有用的话,在这浪费je的数据库空间。
0 请登录后投票
   发表时间: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版本号在源代码实现中没意义的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics