mariadb 导入 txt 数据后体积有点大

2016-02-03 17:55:32 +08:00
 algas

最近工作需要,现学现卖折腾数据库。

导入数据

use MyBase;
load data local infile '/Data.txt' into table tmp FIELDS TERMINATED BY ',' lines terminated by '\n';

文本文件 Data.txt 大小是 1.5GB ,但是导入后发现 /var/lib/mysql/MyBase 有 2GB 大小。
tmp 表中元素都有按照需求声明大小,数值部分也有用 double 、 int 类型。

这种导入后比文本文件还大的情况有点让人搞不清楚。。。

4106 次点击
所在节点    MySQL
24 条回复
algas
2016-02-05 11:25:16 +08:00
@realpg
bigint(8) 大概类似 Linux C 里面的 long long int 吧,当时考虑是为了压缩体积就没有用 char
realpg
2016-02-05 13:17:16 +08:00
@algas
mysql 后面那个数字是数字长度,不是 bit
int(4)的意思就是-999~9999 用 32bit 存储
bigint(4)的意思也是-999~9999 但是实际用 64bit 存储
你们需要个好歹也略懂 MySQL 的 admin
jhdxr
2016-02-06 15:19:31 +08:00
@algas 完全胡闹,还说自己『 tmp 表中元素都有按照需求声明大小』
1. char 是定长,和实际储存内容无关。变长请用 varchar ,但依然比纯文本大,因为还有存字符串长度
2. 上面也有人提到了,你数字存储用的太大了。。。
algas
2016-02-20 18:02:10 +08:00
@jhdxr

@realpg
啊,掩面.... 无颜在 V 站冒泡了

不过 un3 和 un4 确实是要用 bigint 保存的,原始数据就是 9 位左右长度的数字,例如 446943213 。
我担心后面的数据会出现更长情况,就选用了 bigint 类型,目的是压缩空间。

只能说这 2 个 unknown 数据目前没啥用,我运气还不错,没出问题~

我是物理方向的研究生,因为需要多次对这 100 多 G 的数据进行筛取分析,我认为使用数据库要更方便和快速,所以我在努力让自己略懂啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/255248

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX