sql查询数据过多内存溢出怎么办


本文摘自PHP中文网,作者(*-*)浩,侵删。

正常来说,一般是不会出现这种情况的,但也不能保证,偶尔有这种情况发生,解决方案如下:

使用分页查询语句。 (推荐学习:mysql学习)

因为分页查询每次只会查询少量数据,所以不会占用太多内存,而且数据量很大的时候,分页查询会节约一些时间的。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

String sql = " SELECT uid,uname  FROM t_user LIMIT ?,? " ;

        PreparedStatement  ps = con.prepareStatement(sql) ;

        int pageSize = 10000;

        int pageId = 0;

        do {

            pst.setInt(1, pageId * pageSize);

            pst.setInt(2, pageSize);

            ResultSet rs = pst.executeQuery();

 

            boolean isEmpty = true;

            while (rs.next()) {

                 isEmpty = false;

                 id = rs.getInt(1);

                 name = rs.getString(2);

            }

            if (isEmpty) {

                break;

            }

            pageId++;

        } while (true);

        con.close();

    } catch (SQLException e) {

        e.printStackTrace();

    }

添加url参数配置

阅读剩余部分

相关阅读 >>

复习一下sql server的差异备份

sql和mysql语法有什么不同

sql语句中where 1=1是什么意思

sql联合查询inner join、outer join和cross join的区别详解

sqlserver 常用日期时间函数

最新windowsserver2012r2安装与基本配置详细步骤

navicat和sql的关系

sqlserver如何查看索引缺失及dmv使用介绍

sqlserver sql性能优化技巧

sql好学吗?

更多相关阅读请进入《sql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...