• 黔江:1000余亩蓝莓成熟 市民乐享“莓”好时光 2019-05-22
  • 【周展安】重新认识《在延安文艺座谈会上的讲话》的现实意义 2019-05-22
  • 十九大代表卢丽安利用周末与在沪台胞分享她参会心得  2019-05-19
  • (两会受权发布)最高人民法院院长简历 2019-05-14
  • 巫山县大峡村:深度贫困村的脱贫之变 2019-05-12
  • “关注泌尿健康”三金片媒体沙龙北京站 2019-05-09
  • 人民网评:教师欠薪为何又成新闻了? 2019-05-07
  • 涪陵:全国人大代表刘家奇院坝讲“两会” 乡亲点赞“六子致富经” 2019-05-07
  • 海南将与香港携手开拓国际客源市场--旅游频道 2019-05-01
  • 赵孟頫:书法大师是怎么炼成的? 2019-04-28
  • 只看到“贫穷”而看不到“富裕”,只看到贫富差别而看不到其根源是社会财富被个人占为私有的私有制,都是片面错误的。 2019-04-25
  • 紫光阁中共中央国家机关工作委员会 2019-04-25
  • 大众因“排放门”被罚10亿欧元 外媒:处罚还没完 2019-04-11
  • 俄罗斯足球队50横扫沙特队真是让人大饱眼福,特提精神!俄罗斯是战斗民族名不虚传。 2019-04-09
  • 西安启动唐长安城明德门遗址保护工程 2019-04-07
  • 今天看啥
      热点:

        新疆35选7的开奖号 www.ts3ne.com

        Mysql 学习笔记(一),mysql学习笔记


             最近从在学习MySQL数据库,遇到一些问题,有些解决了,有些还未找到答案,本篇作为学习笔记,未解决的问题等后续有答案再补充,也请走过路过的大牛们指点一二;

         

            问题一:Java程序查询MySQL表数据,由于MySQL默认将查询结果全部加载到内存中,数据量比较大时,会报OOM,以下是解决这个问题过程中在网上找到的三种常见解决方案:

        方案1)

        1 setFetchSize(Integer.MIN_VALUE);
        View Code

        方案2)

        1 conn = DriverManager.getConnection("jdbc:mysql://localhost/?useCursorFetch=true", "user", "password");
        2 stmt = conn.createStatement();
        3 stmt.setFetchSize(100);
        View Code

        方案3)分页查询,由于某些比较囧的原因,我最终选取了这个方案;

        1 --分页查询语句示例
        2 select * from tablename order by col limit offset, pagesize;
        View Code

        当offset比较大的时候,查询效率很低,以下是网上查到的两种解决办法

        1 --1
        2 select * from tablename where col1 > (select col1 from tablename order by col1 limit (&page-1)*&pagesize,1) order by col1 limit &pagesize;
        3 
        4 --2
        5 select t1.* from tablename as t1 join (select col1 from tablename order by col1 limit (&page-1)*&pagesize,1) as t2 where t1.col1 >= t2.col1 order by t1.col1 limit &pagesize;
        6 
        7 --语句2对于当表的主键是复合字段的时候比较容易扩展,可以写成
        8 select t1.* from tablename as t1 join (select col1, col2 from tablename order by col1, col2 limit (&page-1)*&pagesize,1) as t2 where t1.col1 > t2.col1 or (t1.col1 = t2.col1 and t1.col2 >= t2.col2) order by t1.col1, t1.col2 limit &pagesize;
        View Code

        用来排序的col1, col2字段是查询的表的主键字段,一般来说,使用分页查询,表最好是有一个自增的数值型的主键会比较好,查询效率比较高,如果主键是多个字段,可以看出来查询的SQL会写得非常复杂,效率也很低。

        我的测试数据是500w,pagesize是50,当表里面的主键是两个字段时,翻第二页的时间用了50+秒,可见效率有多低……只能看看还有没有优化办法,其实我的需求是扫全表,因此只要每次翻页的时候把上一页查到的最后一条记录

        主键值传给下一个查询语句就可以优化不少时间,最终的方案如下:

         1     String sqltext = "select col1, col2 from tablename where col1 > ? or (col1 = ? and col2 > ?) order by col1, col2 limit &pagesize";
         2 
         3     PreparedStatement prepStmt = null;
         4     ResultSet rs = null;
         5     prepStmt = conn.prepareStatement(sqltext);
         6 
         7     String iCol1 = "";
         8     String iCol2 = "";
         9 
        10     while(true)
        11     {
        12          prepStmt.setString(1,iCol1);
        13          prepStmt.setString(2,iCol1);
        14          prepStmt.setString(3,iCol2);
        15          rs = prepStmt.executeQuery();
        16          int rsCnt = 0;
        17          while(rs.next())
        18          {
        19             rsCnt++;
        20             if(rsCnt == PAGESIZE) 
        21             {
        22                 iCol1 = rs.getString("col1");
        23                 iCol2 = rs.getString("col2");
        24             }
        25           }
        26           if(rsCnt == PAGESIZE) break;
        27     }
        View Code

             问题二(未解决),MySQL 存储过程,使用insert ignore 语句新增表记录,程序中断重提没有新增成功(实际表里面没有该记录),去掉ignore就成功新增了,不清楚中间发生了什么事?单独调研存储过程insert ignore没问题。在Java程序中调用出现这种情况。

             问题三(未解决),向MySQL中新增10G左右的数据(执行好几次),MySQL生成150G左右的二进制日志,我需要继续学下MySQL二进制日志文件的相关内容,じゃ~また

         

        新疆35选7的开奖号 www.ts3ne.comtrue//www.ts3ne.com/Mysql/1316431.htmlTechArticleMysql 学习笔记(一),mysql学习笔记 最近从在学习MySQL数据库,遇到一些问题,有些解决了,有些还未找到答案,本篇作为学习笔记,未解...

        相关文章

          暂无相关文章
        相关搜索:

        帮客评论

        视觉看点
      • 黔江:1000余亩蓝莓成熟 市民乐享“莓”好时光 2019-05-22
      • 【周展安】重新认识《在延安文艺座谈会上的讲话》的现实意义 2019-05-22
      • 十九大代表卢丽安利用周末与在沪台胞分享她参会心得  2019-05-19
      • (两会受权发布)最高人民法院院长简历 2019-05-14
      • 巫山县大峡村:深度贫困村的脱贫之变 2019-05-12
      • “关注泌尿健康”三金片媒体沙龙北京站 2019-05-09
      • 人民网评:教师欠薪为何又成新闻了? 2019-05-07
      • 涪陵:全国人大代表刘家奇院坝讲“两会” 乡亲点赞“六子致富经” 2019-05-07
      • 海南将与香港携手开拓国际客源市场--旅游频道 2019-05-01
      • 赵孟頫:书法大师是怎么炼成的? 2019-04-28
      • 只看到“贫穷”而看不到“富裕”,只看到贫富差别而看不到其根源是社会财富被个人占为私有的私有制,都是片面错误的。 2019-04-25
      • 紫光阁中共中央国家机关工作委员会 2019-04-25
      • 大众因“排放门”被罚10亿欧元 外媒:处罚还没完 2019-04-11
      • 俄罗斯足球队50横扫沙特队真是让人大饱眼福,特提精神!俄罗斯是战斗民族名不虚传。 2019-04-09
      • 西安启动唐长安城明德门遗址保护工程 2019-04-07