如何从数据库中获取大量数据?

时间:2012-11-20 04:44:26

标签: android iphone mysql json

在我的数据库中有大量数据(兆字节数据)。它们都是图像(网址)。我们可以在手机(Android,iPhone)中显示这些数据。 获取数据的更好方法是什么?我的意思是如何在显示所有数据的同时提高性能?

请求告诉我。

5 个答案:

答案 0 :(得分:1)

如果你从数据库获得的图像URL比使用NSThread来调用i手机中的其他功能,它将在后台加载图像,你的应用程序将为你提供更好的性能。

答案 1 :(得分:0)

有很多理由说人们说不要将大型二进制对象放在数据库中,这就是其中之一。

数据库不是,也永远不会是文件系统。它用于存储关系数据,而不是二进制数据。还有其他数据库平台可以作为文档存储,这是您需要的。

在某些时候,您将需要备份数据库,如果数百GB的大小将证明是困难的并且CPU密集型。恢复将需要更长时间。如果它们都是普通文件,这种事情对于rsync和一些脚本来说是微不足道的。

我的建议是利用像Amazon S3这样的现有解决方案,或者将文件路径存储在数据库中,并像提供任何其他静态文件一样提供文件,只需在公共URL上提供即可。如果您需要一定程度的安全性,通常可以通过充分随机化URL来阻止该内容,因为大多数移动应用程序不会有效地使用会话或cookie。

答案 2 :(得分:0)

解决方案取决于您的数据库是静态还是动态。如果整个数据是静态的,我会将其压缩到Android的Assets文件夹中,并直接从那里使用它,避免任何网络问题。

如果这是动态的,您将必须创建Web服务,该服务仅提取在特定视图中可见的数据或在开始时获取所有数据,并且稍后仅进行增量同步。

答案 3 :(得分:0)

我从您的问题中了解到,数据库仅包含图像URL 不是实际图像二进制数据。正确的吗?

如果是这种情况,我会假设您要从数据库中检索图像URL,然后从Internet获取实际图像。

考虑缓存最有可能被用户查看的图像,甚至可以在后台服务中预取它们。

显示它们时,您肯定需要一个专用线程,以便您的应用保持响应。

答案 4 :(得分:0)

您已经通过在DB中存储所需的URL来完成了正确的工作,而没有使用图像二进制文件重载数据库。除此之外,如果你想提高性能,你可以执行

1)索引 - 索引只是一种数据结构,它根据一列或多列中的值(索引键)提供表中行的快速访问路径。这允许使用快速搜索技术来查找值,而不是必须逐行扫描整个表,这样可以更快地检索数据。这可以成为您环境中的一个重要性能助推器,从而减少运行SELECT查询并获取数据所需的时间。

2)在Amazon S3等平台上托管您的图像将加快加载速度,这肯定会提升性能。