gpt4 book ai didi

sql - 优化数据库类型以压缩数据库(SQLite)

转载 作者:搜寻专家 更新时间:2023-10-30 20:11:06 25 4
gpt4 key购买 nike

我正在压缩数据库 (SQLite),我正在尝试优化我在模式中分配的数据类型的大小。我掌握的数据大致可以分为3种数字。它们是:

  1. 101010000 - 9 位数字
  2. 01, - 仅一或零
  3. 13.4567 - 浮点类型。我只想在这里存储 13.45。

所有数字都将用于程序中的数学运算。我正在使用这个网站作为引用:http://www.sqlite.org/datatype3.html

我想知道哪种数据类型亲和性会给我最紧凑的数据库。我目前的数据库大小接近 40 GB!

感谢您的帮助。

最佳答案

在 SQLite 中,整数数据类型可以占用 1、2、4 或 8 个字节,具体取决于数据值的大小。 bool 类型存储为整数 0 或 1,并且始终占用 1 个字节。REAL(浮点)数据需要 8 个字节来存储。如果您愿意将数据四舍五入为 2 位小数,您可能希望将 float 据乘以 100 并将其存储为 4 字节整数值(并为每个值保存 4 字节)。你提到的9位二进制数应该需要2个字节来存储。

如何优化数据?有很多策略。如果您有很多 bool 字段,您也许可以使用一个字节来存储最多 8 位。这应该可以让您将存储效率提高 8 倍。另一个好的策略是规范化您的数据:将其拆分为多个表。但是,这仅在您的数据架构允许此类拆分时才有效。

通常,如果您有太多索引,它们可能会显着增加磁盘上数据库的大小。正确的解决方案是使用 EXPLAIN 修改软件使用的实际 SQL 查询,找出不需要的索引并删除它们。

最后,不要忘记使用 VACUUM FULL 可以使数据库占用尽可能少的磁盘空间,但运行它可能需要一段时间,并且需要独占数据库锁。祝你好运!

关于sql - 优化数据库类型以压缩数据库(SQLite),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12993462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com