婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 分析Mysql大量數據導入遇到的問題以及解決方案

分析Mysql大量數據導入遇到的問題以及解決方案

熱門標簽:哈爾濱crm外呼系統價格 做地圖標注都需要什么工具 西安400電話在哪里辦理 甘孜電話機器人廠家 上海智能外呼系統需要多少錢 電銷機器人好品牌門薩維l 銀川電銷外呼系統定制 凱立德科技館地圖標注 中科嘉智人工智能電銷機器人

在項目中,經常會碰到往數據庫中導入大量數據,以便利用sql進行數據分析。在導入數據的過程中會碰到一些需要解決的問題,這里結合導入一個大約4G的txt數據的實踐,把碰到的問題以及解決方法展現出來,一方面自己做個總結記錄,另一方面希望對那些碰到相同問題的朋友有個參考。

我導入的數據是百科的txt文件,文件大小有4G多,數據有6500萬余條,每條數據通過換行符分隔。每條數據包含三個字段,字段之間通過Tab分隔。將數據取出來的方法我采用的是用一個TripleData類來存放這三個字段,字段都用String,然后將多條數據存到ListTripleData>中,再將ListTripleData>存入mysql數據庫,分批將所有數據存到mysql數據庫中。

以上是一個大概的思路,下面是具體導入過程中碰到的問題。

1 數據庫連接的亂碼及兼容問題。

數據中如果有中文的話,一定要把鏈接數據庫的url設置編碼的參數,url設置為如下的形式。

URL="jdbc:mysql://"+IP+":"+PORT+"/"+DB_NAME+"?useSSL=falseuseUnicode=truecharacterEncoding=utf-8";

把編碼設置為UTF-8是解決亂碼問題,設置useSSL是解決JDBC與mysql的兼容問題。如果不設置useSSL,會報錯。類似于

Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

這樣的錯誤信息。主要是mysql版本比較高,JDBC版本比較低,需要兼容。

2 utf8mb4編碼問題

在導入數據的過程中,還會碰到類似于

SQLException :Incorrect string value: '\xF0\xA1\x8B\xBE\xE5\xA2...' for column 'name'

這樣的錯誤信息,這是由于mysql中設置的utf-8是默認3個字節的,對于一般的數據是沒有問題的,如果是大的數據量,里面難免會包含一些微信表情,或者特殊字符,它們占了4個字節,utf-8不能處理,所以報錯。解決的辦法就是mysql在5.5.3以后的版本引入了4個字節的utf-8編碼,也就是utf8mb4,需要對mysql的編碼重新設置。

可以按照以下步驟進行操作,一是對要修改的數據庫進行備份,雖然utf8mb4是向下兼容utf8的,但為了以防操作不當,還是需要防患于未然,做好備份工作。二是要修改數據庫的字符集編碼為utf8mb4—UTF-8 Unicode,排序規則utf8mb4_general_ci。以上修改我是使用navicat進行修改的,如何用命令行修改,大家可以自行查找。三是要修改配置文件my.ini,在mysql安裝的根目錄下。加入以下設置。

[client]
default-character-set = utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
[mysql]
default-character-set = utf8mb4

修改完成后,需要重新啟動mysql,使修改生效。

然后再進行數據的導入工作,應該就可以正常導入了。

3 大批量導入的時間效率問題

由于我們的數據量比較大,我們把數據進行了分割,我把6500萬條數據分為500個文件,每個文件大約11萬條數據,將這11萬條數據放到ArrayListTripleObject>中,然后批量導入。大概的思路是采用“insert into tb (...) values(...),(...)...;”的方法,用insert一次性插入,這樣時間會節約很多時間。示例方法如下。

public static void insertSQL(String sql,ListTripleObject> tripleObjectList) throws SQLException{
    Connection conn=null;
    PreparedStatement psts=null;
    try {
      conn=DriverManager.getConnection(Common.URL, Common.DB_USERNAME, Common.DB_PASSWORD);
      conn.setAutoCommit(false); // 設置手動提交 
      // 保存sql后綴
      StringBuffer suffix = new StringBuffer();
      int count = 0; 
      psts=conn.prepareStatement("");
      String s="";
      String p="";
      String o="";
      while (counttripleObjectList.size()) {
        s=tripleObjectList.get(count).getSubject().replaceAll(",", ".").replaceAll("\\(", "").replaceAll("\\)", "").replaceAll("\'", "").replaceAll("\\", "");
        p=tripleObjectList.get(count).getPredicate().replaceAll(",", ".").replaceAll("\(", "").replaceAll("\)", "").replaceAll("'", "").replaceAll("\\\\", "");
        o=tripleObjectList.get(count).getObject().replaceAll(",", ".").replaceAll("\\(", "").replaceAll("\\)", "").replaceAll("\'", "").replaceAll("\\", "");
        suffix.append("('" +s +"','"+p+"','"+ o+"'),");
        count++;
      }
      // 構建完整SQL
      String allsql = sql + suffix.substring(0, suffix.length() - 1);
      // 添加執行SQL
      psts.addBatch(allsql);
      psts.executeBatch(); // 執行批量處理 
      conn.commit(); // 提交 
    } catch (Exception e) {
      e.printStackTrace();
    }finally{
      if(psts!=null){
        psts.close();
      }
      if(conn!=null){
        conn.close();
      }
    }
  }

這種方法的優點是導入數據花費的時間會很少,6500萬條數據,用了正好1個小時。缺點是如果數據中有一大段的句子,需要對里面的逗號,括號,反斜線等進行處理,這里需要進行衡量,是否使用該方法。

如果正常插入,也就是使用“insert into tb (...) values(...);insert into tb (...) values(...);……”的形式,則不用處理特殊的符號,但花費的時間會很長,我測試了一下,11萬條數據大約需要12分鐘左右,導入6500萬條數據大概要100個小時。

我們采用的是第一種方法,數據大概可以查看就可以,對數據要求沒有那么嚴格,節約了時間。

以上是我在往mysql中導入大批量數據時碰到的問題,以及所想到的解決方法,如果大家有更好的解決方法,或者碰到其他的問題,希望一起討論。

您可能感興趣的文章:
  • 將sqlite3中數據導入到mysql中的實戰教程
  • php基于Fleaphp框架實現cvs數據導入MySQL的方法
  • MySQL中數據導入恢復的簡單教程
  • PHP把MSSQL數據導入到MYSQL的方法
  • MySQL中使用load data命令實現數據導入的方法
  • 解析csv數據導入mysql的方法
  • phpMyAdmin下將Excel中的數據導入MySql的圖文方法
  • 3步搞定純真IP數據導入到MySQL的方法詳解
  • Excel數據導入Mysql數據庫的實現代碼
  • 如何把ACCESS的數據導入到Mysql中
  • MYSQL大數據導入

標簽:浙江 那曲 四川 濮陽 山南 安徽 安康 平頂山

巨人網絡通訊聲明:本文標題《分析Mysql大量數據導入遇到的問題以及解決方案》,本文關鍵詞  分析,Mysql,大量,數據,導入,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《分析Mysql大量數據導入遇到的問題以及解決方案》相關的同類信息!
  • 本頁收集關于分析Mysql大量數據導入遇到的問題以及解決方案的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩在线一二三区| 中文字幕免费一区| 国产精品久久久久婷婷| 色综合天天综合色综合av | 亚洲视频图片小说| 欧美精品v国产精品v日韩精品| 免费成人在线视频观看| 国产成人av影院| 日本视频免费一区| 亚洲国产综合91精品麻豆| 亚洲一区二区三区中文字幕在线| 日韩欧美亚洲另类制服综合在线| 成人午夜电影网站| 国内精品视频666| 国产精品美女久久久久久2018| 欧美老肥妇做.爰bbww| 成人h精品动漫一区二区三区| 蜜臀精品一区二区三区在线观看| 亚洲三级在线免费观看| 亚洲欧洲一区二区在线播放| 国产日韩欧美a| 在线观看亚洲a| 秋霞午夜鲁丝一区二区老狼| 国产精品国产精品国产专区不蜜| 另类中文字幕网| 一区二区三区不卡视频| 精品国产91洋老外米糕| 91精品国产丝袜白色高跟鞋| jvid福利写真一区二区三区| 福利电影一区二区| caoporn国产一区二区| 国产91丝袜在线观看| 99久久精品99国产精品| 色婷婷综合激情| 欧美日韩情趣电影| 久久精品99国产精品日本| 麻豆91免费看| 国内精品免费**视频| 成人激情综合网站| 波多野结衣中文字幕一区二区三区| 精品在线免费视频| 久草精品在线观看| 国内成人精品2018免费看| 99精品国产91久久久久久| 欧美精品aⅴ在线视频| 欧美一区二区三区人| 欧美精品乱码久久久久久| 精品国产自在久精品国产| 久久免费视频色| 国产精品国产三级国产有无不卡| 中文字幕免费在线观看视频一区| 久久色在线观看| 亚洲欧美日韩国产综合在线| 日本欧美一区二区三区| 99久久99久久精品免费观看| 欧美日韩精品三区| 国产情人综合久久777777| 亚洲色图.com| 免费观看久久久4p| jiyouzz国产精品久久| 欧美成人a视频| 亚洲免费观看高清完整版在线| 国产成人免费视频网站高清观看视频| 欧美日韩五月天| 一区二区三区精品在线观看| 99精品国产视频| 亚洲美女淫视频| av中文字幕亚洲| 日韩一区二区三区视频在线观看| 亚洲成人精品一区| 色偷偷久久一区二区三区| 国产精品久久久久久户外露出 | 亚洲国产另类精品专区| 韩国欧美国产1区| 欧美第一区第二区| 日产国产欧美视频一区精品| 在线成人av网站| 婷婷丁香久久五月婷婷| 在线视频国内自拍亚洲视频| 1区2区3区国产精品| 九色综合国产一区二区三区| 欧美一区二区三区思思人| 亚洲美女屁股眼交| 色婷婷一区二区| 亚洲成在人线免费| aaa亚洲精品| 免费看精品久久片| 青青草成人在线观看| 日韩黄色免费网站| 久久狠狠亚洲综合| 国产精品系列在线播放| 国产91丝袜在线观看| 99精品国产视频| 粉嫩绯色av一区二区在线观看| 亚洲国产中文字幕在线视频综合 | 一区二区久久久久久| 久久男人中文字幕资源站| 成人污污视频在线观看| 另类小说色综合网站| 天天做天天摸天天爽国产一区| 日韩一区二区免费在线电影| 色综合久久中文字幕| 国产69精品一区二区亚洲孕妇| 五月天丁香久久| 最新高清无码专区| 久久久久久久久久久久久久久99| 91精品一区二区三区在线观看| 91视视频在线观看入口直接观看www| 狠狠色狠狠色综合系列| 捆绑紧缚一区二区三区视频| 亚洲国产日韩综合久久精品| 中文字幕在线不卡视频| 一区二区不卡在线播放| 亚洲视频在线一区观看| 亚洲男女一区二区三区| 亚洲尤物在线视频观看| 亚洲精品视频一区二区| 一区二区三区在线免费视频| 亚洲h动漫在线| 蜜桃视频在线观看一区| 蜜桃久久精品一区二区| 日韩精品一二区| 91精品国产高清一区二区三区蜜臀| 欧美日韩综合不卡| 欧美日韩中文国产| 久久午夜免费电影| 日韩毛片在线免费观看| 亚洲成人动漫精品| 国产精品一区二区不卡| 99热99精品| 欧美一区二区观看视频| 久久免费精品国产久精品久久久久| 久久影视一区二区| 亚洲精品ww久久久久久p站| 另类小说欧美激情| 91视频免费观看| 精品国产乱码久久久久久1区2区 | 国产乱码精品一区二区三区av| 狠狠色丁香久久婷婷综合_中| 成人永久免费视频| 欧美色图片你懂的| 国产婷婷色一区二区三区 | 91精品国产综合久久精品图片 | 国产午夜精品一区二区| 国产精品久久夜| 极品销魂美女一区二区三区| 91久久精品一区二区| 国产精品女同一区二区三区| 美女在线一区二区| 欧美日韩一区三区四区| 中文在线一区二区 | 精品国产髙清在线看国产毛片 | 欧美r级电影在线观看| 亚洲一区二区视频在线观看| 国产**成人网毛片九色| 欧美极品美女视频| 国产福利一区二区| 国产嫩草影院久久久久| 免费观看在线色综合| 中文字幕乱码日本亚洲一区二区| 欧美在线一区二区| 国产激情一区二区三区四区 | 日韩一区有码在线| 欧美一区二区三区免费在线看| 国产九色精品成人porny| 亚洲精品美国一| 国产欧美中文在线| 精品国产一区二区三区四区四 | 欧美艳星brazzers| www.在线欧美| 成人一区二区三区视频| 日韩国产欧美一区二区三区| 日韩一区二区在线观看视频 | 成人性生交大片免费看中文网站| 一区二区三区久久| 在线一区二区三区四区五区 | 欧美伊人久久大香线蕉综合69| 久久99精品国产91久久来源| 亚洲色图第一区| 国产午夜精品美女毛片视频| 在线视频国内自拍亚洲视频| 国产一区二区精品在线观看| 亚洲激情校园春色| 久久久久久久久99精品| 欧美日韩在线播放一区| 成人h动漫精品一区二区| 五月天一区二区三区| 一区二区三区在线视频免费| 亚洲国产精品成人综合| 久久精品视频一区二区| 日韩欧美卡一卡二| 欧美日韩国产乱码电影| 色8久久精品久久久久久蜜| 国产91精品入口| 成人免费毛片aaaaa**| 成人一区二区三区| 成人午夜视频在线| a在线欧美一区| 99久久精品免费精品国产| 91美女在线视频|