当前位置: 首页 > news >正文

网站建设公司及网络安全法免费seo诊断

网站建设公司及网络安全法,免费seo诊断,网站备案用英文怎么说,做网站好的公司有哪些基于 mysql 8.0 基础介绍 com.mysql.cj.protocol.ResultsetRows该接口表示的是应用层如何访问 db 返回回来的结果集 它有三个实现类 ResultsetRowsStatic 默认实现。连接 db 的 url 没有增加额外的参数、单纯就是 ip port schema 。 @Test public void generalQuery() t…

基于 mysql 8.0

基础介绍

com.mysql.cj.protocol.ResultsetRows

该接口表示的是应用层如何访问 db 返回回来的结果集

它有三个实现类
在这里插入图片描述

ResultsetRowsStatic

默认实现。连接 db 的 url 没有增加额外的参数、单纯就是 ip port schema 。

@Test
public void generalQuery() throws Exception {String sql = "select * from test";ps = conn.prepareStatement(sql);ResultSet rs = ps.executeQuery(sql);int count = 0;while (rs.next()) {count++;}System.out.println(count);
}

那么这个时候、你的 ResultSet 对应的实现类里面的成员变量

com.mysql.cj.protocol.a.result.NativeResultset#rowData

的实现类就是 ResultsetRowsStatic

这个时候是最蠢的模式、因为 mysql 的驱动层只有接收完 db 所有数据才会返回到应用层。对应代码就是 ResultSet rs = ps.executeQuery(sql); 应用到线程会卡住在这里。直到驱动层返回。
假如表 test 中有 100w 数据、那么发生 OOM 到地方将会是 mysql 驱动层内部的代码、因为它自己将数据存起

	// 来源 com.mysql.cj.protocol.a.BinaryResultsetReader#readBinaryRowFactory brf = new BinaryRowFactory(this.protocol, cdef, resultSetFactory.getResultSetConcurrency(), false);ArrayList<ResultsetRow> rowList = new ArrayList<>();// 真正获取数据ResultsetRow row = this.protocol.read(ResultsetRow.class, brf);while (row != null) {if ((maxRows == -1) || (rowList.size() < maxRows)) {rowList.add(row);}row = this.protocol.read(ResultsetRow.class, brf);}rows = new ResultsetRowsStatic(rowList, cdef);// =============== 分割 ==========private List<Row> rows;@SuppressWarnings("unchecked")public ResultsetRowsStatic(List<? extends Row> rows, ColumnDefinition columnDefinition) {this.currentPositionInFetchedRows = -1;this.rows = (List<Row>) rows;this.metadata = columnDefinition;}

ResultsetRowsCursor

想要启用这种模式、需要在连接 db 的 url 中加上参数 useCursorFetch=true

jdbc:mysql://127.0.0.1:3306/test-db?useCursorFetch=true

并且对应的 fetchSize 要大于 0
我们看下源码 com.mysql.cj.jdbc.ConnectionImpl#prepareStatement(java.lang.String)
发现参数 int resultSetType, int resultSetConcurrency 默认值为

    private static final int DEFAULT_RESULT_SET_TYPE = ResultSet.TYPE_FORWARD_ONLY;private static final int DEFAULT_RESULT_SET_CONCURRENCY = ResultSet.CONCUR_READ_ONLY;

当我们设置了 useCursorFetch=true 之后、useServerPrepStmts 会被设置为 true
com.mysql.cj.jdbc.ConnectionImpl#ConnectionImpl(com.mysql.cj.conf.HostInfo)com.mysql.cj.conf.PropertySet#initializeProperties com.mysql.cj.jdbc.JdbcPropertySetImpl#postInitialization

     if (getBooleanProperty(PropertyKey.useCursorFetch).getValue()) {// assume server-side prepared statements are wanted because they're required for this functionalitysuper.<Boolean>getProperty(PropertyKey.useServerPrepStmts)
http://www.ds6.com.cn/news/117472.html

相关文章:

  • 欧洲网站设计百度指数的作用
  • 音频网站建设软件推广的渠道是哪里找的
  • 中国空间站有多大seo短视频入口引流
  • 注册网站做网销长安seo排名优化培训
  • 推广型网站制作公司八零云自助建站免费建站平台
  • 怎样做永久网站二维码优化的定义
  • 做情人节网站网站seo具体怎么做?
  • b2c代表平台有哪些整站seo优化哪家好
  • 免费搭建自己的网站深圳seo关键词优化
  • 销售公司怎么做网站网络营销和网站推广的区别
  • 广州网站建设菲利宾网上推
  • 图片模板网站昆明网络推广公司排名
  • 临沂网站建设公司招聘营销策划方案ppt范文
  • 做网站百度收录新闻网最新消息
  • 济南做外贸的网站公司吗seo引擎搜索网站
  • 公司网站建设北京天津百度优化
  • 城乡建设招投标网站如何做网址
  • 免费 网站 服务器2021谷歌搜索入口
  • 自动化营销网站建设专业的网页制作公司
  • 网站建设推广襄樊semester
  • 佛山 做网站百度一下官网首页百度
  • 怎么让人搜索到自己做的网站重庆seo的薪酬水平
  • 小网站推广百度服务中心官网
  • z怎么做优惠券网站株洲seo优化
  • 回老家做PHP网站刷关键词要刷大词吗
  • 网站自建女生学网络营销这个专业好吗
  • 前端自己做博客网站关键词排名靠前
  • 黄山做网站全球网络营销公司排行榜
  • 台州市建设项目规划网站百度关键词优化排名技巧
  • 以家乡为主题做网站平台广告推广