python - 什么是数据库大小的有效方法?
问题描述
我正在使用 python 将我的 .xlsx 数据转换为 DB,并且输出大小比我的预期要大。
我创建的数据库表是:
def create_file():
cur.execute(
"""
CREATE TABLE IF NOT EXISTS [file](
[f_uid] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[f_name_key] VARCHAR(200),
[f_name_list] VARCHAR(1000),
[path] VARCHAR(1000),
[run_start_dt] VARCHAR(200),
[run_end_dt] VARCHAR(200),
[protocol_file_name] VARCHAR(200),
[sn] VARCHAR(200),
[head_sn] VARCHAR(200),
[version] VARCHAR(200)
);
""")
def create well():
cur.execute(
"""
CREATE TABLE IF NOT EXISTS [well](
[w_uid] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[w_no] VARCHAR(50),
[sample_key] VARCHAR(100),
[qa] TINYINT,
[call] VARCHAR(50),
[v1] FLOAT,
[v2] FLOAT,
[f_uid] INTEGER
);
""")
def create_value():
cur.execute(
"""
CREATE TABLE IF NOT EXISTS [value](
[v_uid] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[w_uid] INTEGER,
[channel] VARCHAR(50),
[max_cycle] TINYINT,
[end_v] FLOAT,
[v_seq] TEXT NOT NULL
);
""")
第一次尝试,因为值表中的 v_seq 是字符串中的一长串浮点数,但输出约为 12GB
第二次尝试,将 v_seq 分成与列表中存在的浮点数一样多的 FLOAT 列,并将每个浮点值放入每一列,输出为 9GB
第三次尝试,回到第一次尝试,将 v_seq 更改为 BLOB 并 gzip 字符串中的一长串浮点数,输出约为 8.5GB
我想不出更多减少输出大小的方法。你能告诉我什么好主意吗?
解决方案
推荐阅读
- angular - Angular:registerLocaleData 与 en-US-POSIX 和货币
- regex - Mikrotik 路由器 Layer7 正则表达式阻止 DNS 区域的访问
- javascript - 在本地使用js后输出变得奇怪
- azure-devops-rest-api - 无法从 github 获取代码到 azure 管道代理(自托管)
- javascript - 插入值进入一个对象-ReactJS
- javascript - Cannon.js + Three.js:最小的汽车 + 物理
- json - Stripe 错误消息 405 -“将 .json 附加到 uri 以使用 rest api”
- regex - 正则表达式匹配 wp-content
- javascript - 是否可以检索 jQuery ajax 响应,然后通过遍历数组来添加数据的打印延迟
- angular - 为什么 addClass 不适用于 Angular 中的 DOM 元素?