【问题标题】:What is the maximum size limit of varchar data type in sqlite?sqlite 中 varchar 数据类型的最大大小限制是多少?
【发布时间】:2011-08-31 20:37:01
【问题描述】:

我是 sqlite 的新手。我想知道sqlite中varchar数据类型的最大大小限制?

谁能给我一些与此相关的信息?我在 sqlite.org 网站上搜索,他们give the answer as:

问。 SQLite 中 VARCHAR 的最大大小是多少?

A. SQLite 不强制 VARCHAR 的长度。你可以声明一个 VARCHAR(10) 并且 SQLite 很乐意让你放 500 里面的人物。它将保持所有 500 个字符完好无损 - 它 从不截断。

但我想知道 sqlite 中 varchar 数据类型的确切最大大小限制。

【问题讨论】:

标签: sqlite size varchar


【解决方案1】:

来自http://www.sqlite.org/limits.html

字符串或BLOB的最大长度

a 中的最大字节数 SQLite 中的字符串或 BLOB 定义为 预处理器宏 SQLITE_MAX_LENGTH。 此宏的默认值为 10 亿(1000 百万或 1,000,000,000)。你可以 提高或降低这个值 使用命令行编译时 像这样的选项:

-DSQLITE_MAX_LENGTH=123456789 当前的实现只会 最多支持字符串或 BLOB 长度 231-1 或 2147483647。还有一些内置的 诸如 hex() 之类的函数可能会失败 在那一点之前。在 它是安全敏感的应用程序 最好不要试图增加 最大字符串和 blob 长度。在 事实上,你最好降低 最大字符串和 blob 长度 更多的东西在几个范围内 如果可能,百万。

在 SQLite 的部分 INSERT 和 SELECT处理,完成 数据库中每一行的内容是 编码为单个 BLOB。所以 SQLITE_MAX_LENGTH 参数也 确定最大字节数 连续。

【讨论】:

  • 供参考:假设 1 字节字符,这略小于 GB。 (或者正好是 1 GB,如果以 10 为基数是您测量位的方式)
  • SQLite 的 1 个字节中究竟可以存储多少个字符?
  • @renatov 我不认为你可以用字符来衡量,这取决于你用于数据库sqlite.org/datatype3.html 的编码和正在输入的字符。例如,UTF-8 每个字符可以有 1 到 4 个字节,ASCII 是否只使用 1 stackoverflow.com/questions/5290182/…
  • @renatov 哦,说明一下,我以ASCII为例,因为sqlite似乎不支持sqlite.org/datatype3.html
  • @renatov 这是一个非常棒的视频,展示了 utf-8 和字符串编码的工作原理 :) youtube.com/watch?v=MijmeoH9LT4
猜你喜欢
  • 2017-01-28
  • 2015-07-02
  • 2012-11-10
  • 2011-03-29
  • 1970-01-01
  • 2013-08-01
  • 2019-03-12
  • 2010-11-12
  • 2019-12-16
相关资源
最近更新 更多