sqlite中varchar数据类型的最大大小限制是多少?

Pri*_*nka 35 sqlite size varchar

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

谁能告诉我一些与此相关的信息?我在sqlite.org网站上搜索了他们给出的答案如下:

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

: SQLite不强制使用VARCHAR的长度.你可以声明一个VARCHAR(10),SQLite很乐意让你输入500个字符.并且它将保持所有500个字符完整 - 它永远不会截断.

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

Fel*_*ino 37

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

字符串或BLOB的最大长度

字符串中的最大字节数或SQLite中的BLOB由预处理器宏SQLITE_MAX_LENGTH定义.此宏的默认值为10亿(十亿或1,000,000,000).您可以使用命令行选项在编译时提高或降低此值,如下所示:

-DSQLITE_MAX_LENGTH = 123456789当前实现仅支持长度为231-1或2147483647的字符串或BLOB长度.而在此之前,某些内置函数(如hex())可能会失败.在安全敏感的应用程序中,最好不要尝试增加最大字符串和blob长度.事实上,如果可能的话,你最好将最大字符串和blob长度降低到几百万的范围内.

在SQLite的INSERT和SELECT处理过程中,数据库中每行的完整内容被编码为单个BLOB.因此,SQLITE_MAX_LENGTH参数还确定一行中的最大字节数.

  • 供参考:假设 1 个字节的字符,这略小于 GB。(或者正好是 1 GB,如果以 10 为基数是您测量位的方式) (2认同)
  • @renatov这是一个非常不错的视频,展示了utf-8和字符串编码的工作原理:) https://www.youtube.com/watch?v=MijmeoH9LT4 (2认同)