2010-07-19 79 views
4

我在我的iPhone应用程序中使用了一个非常大的数据库。在oder的某个列上使用索引可以更快地在该数据库中进行搜索。问题是这个索引增加了数据库的大小:我的应用程序现在大于20Mo,需要无线下载(为了允许3G下载,我想保持在20Mo以下)。如何使用Xcode以编程方式创建SQLite数据库中的索引?

因此,为了减小这个数据库的大小,我想在第一次启动应用程序时在用户的iPhone上创建索引。

SQLite的查询我想执行的是以下之一:

“CREATE INDEX ON INDEX_ON_MYCOLUMN MY_TABLE(MYCOLUMN)”

你知道如何纳入我的XCode这个代码查询? sqlite3_something?

顺便说一句,如何在此操作后以编程方式压缩数据库?

非常感谢您的帮助!

回答

1

sqlite3_exec()可能会做你想做的。您可以在每次启动时运行它,而不仅仅是第一次启动(其他时间将无害)。当然,你的发布时间可能会变得很糟糕。请参阅VACUUM ANALYZE

+1

谢谢。它的语法如下: NSString * query = @“CREATE INDEX IND_MYCOLUMN ON MY_TABLE(MY_COLUMN)”; const char * sqlStatement = [query2 UTF8String]; int res = sqlite3_exec(database,sqlStatement,NULL,NULL,NULL); 尽管如此,要在iPhone上非常大的数据库上创建索引太长,因此,我不得不缩小尺寸! 再次感谢您的帮助。 – 2010-07-31 21:35:37

相关问题