压测下来最终发现:jdbc 客户端还是使用 bio(阻塞 io)更好,异步 api + nio 才是神仙搭配!
lealone 的 jdbc 客户端有4种组合:
1. bio + 同步 api ;
2. bio + 异步 api ;
3. nio + 同步 api ;
4. nio + 异步 api ;
其中1和2的性能一样;3最慢,比1和2慢20%以上;4最快,高并发时比1-3快10倍。
把 lealone 的 jdbc 客户端从默认的 nio 改成 bio 了,因为 jdbc 本身就是同步风格的 api,应用也习惯了同步风格,bio 配同步 api 最合适。如果应用想追求极致的性能,可以用 lealone 专有的 jdbc 异步 api,然后再搭配 nio,性能马上快10倍,缺点就是要适应异步 api 的编程风格。
