国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

MySQL小實踐一:快速插入1000萬條數據到MySQL數據庫中

shuibo / 1647人閱讀

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

今天在網上看到一篇博文,題目是:4分鐘插入1000萬條數據到mysql數據庫中,覺得很有意思,就記錄下來供自己學習。
MySQL版本:mysql-5.7.22-winx64
1,設置MySQL數據庫表的容量
數據庫表的默認容量是:4M,如果存儲的數據超限的話會報錯。
在windows控制臺輸入mysql -uroot -p,進入MySql數據庫,輸入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();
                // 設置事務為非自動提交
                conn.setAutoCommit(false);
                // 比起st,pst會更好些
                pst = (PreparedStatement) conn.prepareStatement("");//準備執行語句
                // 外層循環,總提交事務次數
                for (int i = 1; i <= 100; i++) {
                    suffix = new StringBuffer();
                    // 第j次提交步長
                    for (int j = 1; j <= 100000; j++) {
                        // 構建SQL后綴
                        suffix.append("(""+ UUID.randomUUID().toString()+"",""+i*j+"""+"),");
                    }
                    // 構建完整SQL
                    String sql = sqlPrefix + suffix.substring(0, suffix.length() - 1);
                    // 添加執行SQL
                    pst.addBatch(sql);
                    // 執行操作
                    pst.executeBatch();
                    // 提交事務
                    conn.commit();
                    // 清空上一次添加的數據
                    suffix = new StringBuffer();
                }
                endTime = new Date().getTime();//開始計時
            }else {
                System.out.println("數據庫連接失敗");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.out.println("com.mysql.jdbc.Driver驅動類沒有找到");
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("數據庫地址錯誤");
        }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,運行結果
可以看到用了兩分鐘

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71953.html

相關文章

  • php多進程插入數據(pcntl 學習筆記二)

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

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

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

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

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

    ThreeWords 評論0 收藏0

發表評論

0條評論

shuibo

|高級講師

TA的文章

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