一堆数据放在一起可能产生什么问题?

如题所述

在项目中,经常会碰到往数据库中导入大量数据,以便利用sql进行数据分析。在导入数据的过程中会碰到一些需要解决的问题,这里结合导入一个大约4G的txt数据的实践,把碰到的问题以及解决方法展现出来,一方面自己做个总结记录,另一方面希望对那些碰到相同问题的朋友有个参考。
我导入的数据是百科的txt文件,文件大小有4G多,数据有6500万余条,每条数据通过换行符分隔。每条数据包含三个字段,字段之间通过Tab分隔。将数据取出来的方法我采用的是用一个TripleData类来存放这三个字段,字段都用String,然后将多条数据存到List<TripleData>中,再将List<TripleData>存入mysql数据库,分批将所有数据存到mysql数据库中。
以上是一个大概的思路,下面是具体导入过程中碰到的问题。
1 数据库连接的乱码及兼容问题。
数据中如果有中文的话,一定要把链接数据库的url设置编码的参数,url设置为如下的形式。
URL="jdbc:mysql://"+IP+":"+PORT+"/"+DB_NAME+"?useSSL=false&useUnicode=true&characterEncoding=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安装的根目录下。加入以下设置。
温馨提示:内容为网友见解,仅供参考
无其他回答

一堆数据放在一起可能产生什么问题?
1 数据库连接的乱码及兼容问题。数据中如果有中文的话,一定要把链接数据库的url设置编码的参数,url设置为如下的形式。URL="jdbc:mysql:\/\/"+IP+":"+PORT+"\/"+DB_NAME+"?useSSL=false&useUnicode=true&characterEncoding=utf-8";把编码设置为UTF-8是解决乱码问题,设置useSSL是解决JDBC与mysql的...

深度报道存在哪些问题
一、信息过于冗长复杂。深度报道往往涉及大量的事实和数据,容易出现内容冗长且复杂的问题。有时候由于过多的事实堆积,使得读者难以理解其真正的意图和核心信息。这不仅削弱了报道的影响力,还可能使读者失去阅读的兴趣。二、缺乏明确的观点或立场。深度报道需要有深入的剖析和独到的观点,但在实际操作中,有...

什么叫堆栈
这样会造成系统的可分配内存的越来越少,导致系统崩溃。 堆栈是一种执行“后进先出”算法的数据结构。 设想有一个直径不大、一端开口一端封闭的竹筒。有若干个写有编号的小球,小球的直径比竹筒的直径略小。现在把不同编号的小球放到竹筒里面,可以发现一种规律:先放进去的小球只能后拿出来,反之,后放进去的小球能够...

金字塔原理—第二篇思考的逻辑
1、技术风险——不成熟的设计问题 2、环保风险——法律可能禁止生产不可回收塑料制品 3、优惠风险——在通货膨胀期顾客不一定欢迎优惠包装 4、非独家经销:(1)外部销售将降低营销作用;(2)因所有权问题难以向其他企业销售 5、投资多——投资回收期过长 6、对每股收益造成负面影响(因杠杆作用而加大) 7、...

什么叫组策略?作用是什么?怎么应用?
给你个简单的回答弄清楚概念,组策略就是把一大堆可以选择的东西放在一起让你选择配置,打个比方说,你会用桌面->属性吧,属性里可以改桌面背景,桌面颜色等,这个放在一起就叫做桌面的组策略(当然没这种叫法了,举个例子而已^_^)windows的组策略就是把windows可以让你设置windows细节的很多东西而已。个人认为是组策略这...

打印机显示堆叠是什么意思?
1、打印机显示堆叠意思是数据太多了,传输不畅。数据都堆积在一起,不利于打印机的运行。2、堆叠是一种复印方式,先关打印机,在重新开机,打印机是否正常打印。复位打印机,在打印试下。3、先卸载打印机驱动,在重新安装打印机驱动程序,这样有利于清理堆叠的数据,让传输更加的流畅。部分 集线器具有...

堆量意味什么
可能会出现车辆堆积的情况;在工业生产中,可能会有产品堆积等待加工或销售的情况。这些情况都需要进行有效的管理和调控,以防止堆量带来的负面影响。总的来说,堆量意味着某种事物在特定条件下的大量积聚。理解和处理好堆量现象,对于提高物流效率、优化数据管理以及其他相关领域的运营都具有重要意义。

堆(heap)和栈(Stack)的区别是什么?为什么平时都把堆栈放在一起讲?
将堆跟栈放在一起将是因为两者都是存储数据的方式。区别如下:一、主体不同 1、堆:是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。2、栈:又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。二、特点不同 1、堆:堆中某...

excel表格多行堆叠在一起怎么办excel表格多行数据如何放到一起
2.为了方便查阅和对比分析,可以将拆分的每一个表单进行命名,这样可以更好地对每一块数据进行管理。3.如果你需要对拆分后的数据进行整合,可以使用Excel的“Consolidate”功能将数据整合在一起,这样可以更方便地对数据进行分析和汇总。出现重叠现象是因为列距不够,重新设置列款即可。方法如下:Excel版本...

这么一堆杂乱的百分比数据做成什么图表,求大神指点
用07版的EXCEL好些,有很多图表类型供选择,点插入,可看到柱型、折线、饼图。不过看你这个表数据太多了,不能将数据都体现在一张图表中,那样看起来还是比较复杂,建议多插几张图表。看得会简单些。图表很简单的,多试几遍就会了。

相似回答