成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

MySQL小實踐一:快速插入1000萬條數(shù)據(jù)到MySQL數(shù)據(jù)庫中

shuibo / 1656人閱讀

摘要:今天在網(wǎng)上看到一篇博文,題目是分鐘插入萬條數(shù)據(jù)到數(shù)據(jù)庫中,覺得很有意思,就記錄下來供自己學(xué)習(xí)。版本,設(shè)置數(shù)據(jù)庫表的容量數(shù)據(jù)庫表的默認(rèn)容量是,如果存儲的數(shù)據(jù)超限的話會報錯。在控制臺輸入進(jìn)入數(shù)據(jù)庫,輸入注意后邊的分號。

今天在網(wǎng)上看到一篇博文,題目是:4分鐘插入1000萬條數(shù)據(jù)到mysql數(shù)據(jù)庫中,覺得很有意思,就記錄下來供自己學(xué)習(xí)。
MySQL版本:mysql-5.7.22-winx64
1,設(shè)置MySQL數(shù)據(jù)庫表的容量
數(shù)據(jù)庫表的默認(rèn)容量是:4M,如果存儲的數(shù)據(jù)超限的話會報錯。
在windows控制臺輸入mysql -uroot -p,進(jìn)入MySql數(shù)據(jù)庫,輸入set global max_allowed_packet = 100*1024*1024;注意后邊的分號。
2,主要代碼
    public static void main(String[] args) {
        final String driver = "com.mysql.jdbc.Driver";
        final String url = "jdbc:mysql://localhost:3306/project";
        final String user = "root";
        final String password = "253432";
        Connection conn = null;
        PreparedStatement pst =  null;
        long beginTime = 0;
        long endTime = 0;
        try {
            Class.forName(driver);//指定連接類型
            conn = DriverManager.getConnection(url, user, password);
            if(conn != null) {
                System.out.println("獲取連接成功");
                beginTime = new Date().getTime();//開始計時
                String sqlPrefix = "insert into test (id,num) values ";
                // 保存sql后綴
                StringBuffer suffix = new StringBuffer();
                // 設(shè)置事務(wù)為非自動提交
                conn.setAutoCommit(false);
                // 比起st,pst會更好些
                pst = (PreparedStatement) conn.prepareStatement("");//準(zhǔn)備執(zhí)行語句
                // 外層循環(huán),總提交事務(wù)次數(shù)
                for (int i = 1; i <= 100; i++) {
                    suffix = new StringBuffer();
                    // 第j次提交步長
                    for (int j = 1; j <= 100000; j++) {
                        // 構(gòu)建SQL后綴
                        suffix.append("(""+ UUID.randomUUID().toString()+"",""+i*j+"""+"),");
                    }
                    // 構(gòu)建完整SQL
                    String sql = sqlPrefix + suffix.substring(0, suffix.length() - 1);
                    // 添加執(zhí)行SQL
                    pst.addBatch(sql);
                    // 執(zhí)行操作
                    pst.executeBatch();
                    // 提交事務(wù)
                    conn.commit();
                    // 清空上一次添加的數(shù)據(jù)
                    suffix = new StringBuffer();
                }
                endTime = new Date().getTime();//開始計時
            }else {
                System.out.println("數(shù)據(jù)庫連接失敗");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.out.println("com.mysql.jdbc.Driver驅(qū)動類沒有找到");
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("數(shù)據(jù)庫地址錯誤");
        }finally {//釋放資源
            System.out.println("插入成功,所有時間:"+ (endTime-beginTime));
            if(conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(pst != null) {
                try {
                    pst.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        
    }
3,運(yùn)行結(jié)果
可以看到用了兩分鐘

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/71953.html

相關(guān)文章

  • php多進(jìn)程插入數(shù)據(jù)(pcntl 學(xué)習(xí)筆記二)

    摘要:進(jìn)程切換太多,影響了了效率應(yīng)該是原因之一。當(dāng)時,十萬條記錄,個進(jìn)程插入總時間為單進(jìn)程插入萬條數(shù)據(jù),耗時秒,相對個進(jìn)程插入萬記錄來說,耗時少些。而單進(jìn)程插入萬條記錄,耗時,相對來說,是挺慢的了。 個人在虛擬機(jī)centos7,單核,1G內(nèi)存 /** * 模擬并發(fā)請求,10萬次寫入數(shù)據(jù)庫 * 拆分為10個進(jìn)程,每個進(jìn)程處理一萬條插入 */ $total = 10000; $num ...

    CoyPan 評論0 收藏0
  • mysql生成1千萬條有效測試數(shù)據(jù)

    摘要:一直在找生成有效測試數(shù)據(jù)的工具與方法今天找到一個大神寫的腳本這里感謝大地上的烏龜鏈接在這自己大神的腳本上做了一些修改生成了一個對象數(shù)組并用發(fā)到后臺程序插入數(shù)據(jù)庫代碼如下腳本獲取當(dāng)前時間戳將對象數(shù)組格式化成字符串成功本人的筆記本比較渣 一直在找生成有效測試數(shù)據(jù)的工具與方法,今天找到一個大神寫的JavaScript腳本,這里感謝----大地上的烏龜.鏈接在這:http://www.cnbl...

    hyuan 評論0 收藏0
  • mysql生成1千萬條有效測試數(shù)據(jù)

    摘要:一直在找生成有效測試數(shù)據(jù)的工具與方法今天找到一個大神寫的腳本這里感謝大地上的烏龜鏈接在這自己大神的腳本上做了一些修改生成了一個對象數(shù)組并用發(fā)到后臺程序插入數(shù)據(jù)庫代碼如下腳本獲取當(dāng)前時間戳將對象數(shù)組格式化成字符串成功本人的筆記本比較渣 一直在找生成有效測試數(shù)據(jù)的工具與方法,今天找到一個大神寫的JavaScript腳本,這里感謝----大地上的烏龜.鏈接在這:http://www.cnbl...

    ThreeWords 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<