【发布时间】:2020-01-13 11:09:26
【问题描述】:
我正在尝试将基于组织 json 文件的文件移动到 mariadb。在我的基于文件的系统中,大约有 2,000,000 个 json 文件被压缩。压缩后的 json 文件的总存储空间为 7GB。
当我将所有记录插入 Mariadb 时,表存储空间变为 35GB。 我将我的表格更改为压缩表格,表格大小为 15GB。 有没有办法进一步减小表格大小?
向mariadb添加数据时存储翻倍正常吗?
这是我的桌子
CREATE TABLE `sbpi_json` (
`fileid` int(11) NOT NULL,
`json_data` longtext COLLATE utf8_bin NOT NULL,
`idhash` char(32) COLLATE utf8_bin NOT NULL,
`sbpi` int(15) NOT NULL,
`district` int(2) NOT NULL,
`index_val` int(2) NOT NULL,
`updated` text COLLATE utf8_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin ROW_FORMAT=COMPRESSED;
ALTER TABLE `sbpi_json`
ADD PRIMARY KEY (`fileid`),
ADD UNIQUE KEY `idhash` (`idhash`),
ADD KEY `sbpi` (`sbpi`);
【问题讨论】:
-
文件系统中json文件的编码是什么?更新的字段是什么? 16GB - 是仅用于数据的空间还是包括各种 MySQL 日志文件以及 innodb?
-
json 文件是 UTF-8。更新的字段用于重复的 mysql。更新字段的字符少于 10 个。
-
"mariadb 中添加数据时存储量翻倍正常吗?" 无法将磁盘上压缩的“文本”文件与 innoDB 文件进行比较,两者都可以解决不同的问题...您还在比较不同的压缩算法...此外,在 InnoDB 中,您添加更多列,并且 innoDB 引擎将添加有关如何使用/读取存在记录的信息并添加记录标题。
-
我进行这种从基于文件到 mariadb 的传输的主要原因是性能。我使用 php 脚本访问文件并将其回显给用户,但我注意到有很大的延迟(获取 zip、解压缩、找到最新的 json 文件并回显它)。加快进程的替代解决方案是迁移到 mariadb,但存储空间显着增加。欢迎提出任何最小化存储大小的建议
-
为什么不单独压缩文件?那么你的流程就是:查找、解压、回显
标签: mysql json mariadb storage space