我正在考虑使用SQLlite3,所以我开始了一些性能测试。
因为我有一个包含许多列的表,我想从SQLite3增加MAX列限制。 正如我在SQLite网站上看到的那样,限制被设置为2000列,现在我想增加它。
我想使用sqlite3_limit()但是,因为我使用SQLAPI,所以我不能使用这个函数。
我在某个网站上看到我需要在SQLite内部更改某些内容,然后必须重新编译它,但我还没有真正理解这部分,所以我想问:
还有另一种方法可以增加Max列吗?
我的程序在c ++的Win10上运行
答案 0 :(得分:3)
除了通过在编译时设置所需的列数,没有其他方法。
幸运的是,这并不难。
sqlite3.c
和sqlite3.h
。 gcc -I. -O3 -DSQLITE_MAX_COLUMN=5000 -c sqlite3.c -o sqlite3.o
将5000更改为您想要的数字。请注意,根据sqlite3.c中的注释,您不应使用大于32676的数字。ar crsf libsqlite3.a sqlite3.o
现在,在将库放置在链接器知道的位置(或使用-L / path / to / library)之后,可以使用-lsqlite3编译程序时链接库。
替代步骤3)和4)。
如果您不想实际创建静态库,但您只想在源代码中删除sqlite3.h和sqlite3.c(SQLite本身建议使用它们的合并文件),那么打开使用您喜欢的编辑器的sqlite3.c,查找SQLITE_MAX_COLUMN
并修改其中的值。
我通过MinGW使用gcc来做到这一点。相同的步骤适用于MSVC提供的工具,只是根据需要更改编译和库创建的命令。