2012-11-15 36 views
1

嗨,感谢您的帮助,多线程数据库提取xcode

我看了一些帖子,我对多线程有点困惑。看起来这可能很容易,但是我对编程非常陌生,所以我仍然试图去掌握它。

这是两个调用从数据库中提取数据,他们采取永远,因为它是...所以我在想,这些多线程,直到我可以学习如何建立这样的核心数据。现在,我使用sqllite和数据库涉及到10000+的食谱...所以不是快如闪电像我想......

请让我知道你在想什么,以及如何才能让这些也许同时发生? (如果可能的话)

谢谢你提前。

requestCount++; 
[[DataPuller sharedDataPuller] getAllDeletedRecipeList]; 
[DataPuller sharedDataPuller].target = self; 


requestCount++; 
[[DataPuller sharedDataPuller] getAllRecipesList]; 
[DataPuller sharedDataPuller].target = self; 
+0

模糊问题的答案... http://www.sqlite.org/threadsafe.html – borrrden

回答

2

如果你正在做SQLite,你可能要考虑使用FMDB哪个(a)让你摆脱sqlite3调用的杂草;和(b)提供了一个FMDatabaseQueue,它允许你协调来自多个队列的查询,这样数据操作就不会彼此绊倒。

说了这么多,你认为你具有你希望用转移到核心数据或会多线程使用SQLite解决显著的性能问题。这不太可能。本地数据库操作的糟糕表现通常更多的是您的应用程序设计问题(例如,尝试检索所有10,000个配方的全部细节不太明智......您可能只想检索唯一标识符,可能只有那些对于给定的屏幕是必需的,然后只需要在稍后的时间检索给定配方的详情)。对于本地数据库交互,您很少需要考虑多线程实现,而只是设计系统以在任何给定的点上检索您需要用于演示的最少可能的信息。我个人发现,当我与某些远程Web服务进行广泛交互时,我的数据库驱动应用程序通常只需要进行多线程处理(在这种情况下,它是检索服务器数据并解析单独线程上的数据,不一定是数据库操作本身)。

如果您的食谱应用程序出现性能问题,我建议您提交一个更详细的问题,并提供代码示例,阐明您的特定性能问题。如果多线程不是解决方案的一部分,我不会感到惊讶。可能的话,适当使用索引和在任何给定点更合理地检索信息可能更为关键。

0

以页面的形式从数据库中获取记录;即每页20或50个食谱。看看YouTube应用程序。在iPhone上或看看我的应用程序。 HCCHelper