2012-02-09 31 views
0

我想为我的应用程序使用一个数据库,它需要阿拉伯语言中所有单词的列表,不幸的是,这个数据库的大小非常大,超过200 MB,我已经看到这样的问题唯一的解决方案是使用Web服务或使我的数据库在线并下载它在第一次使用,这在我的情况是不实际的,因为这是一个游戏,用户可以在他断开连接时播放它,加上下载尺寸会很大,并且会在手机上占用很多空间。我无法找到一种方法来使我的数据库的大小合理。在android应用程序中使用humongous数据库

我的问题是如果有一种方法可以缩小数据库的大小,因为知道存储在其中的所有数据都是文本类型。 我注意到我手机中的键盘有一个自动完成功能,它从哪里得到有效单词列表?我可以将它用于我的应用程序吗?

+0

听起来像你需要添加索引到你的话,这样你就不用太多的空间与web服务。 – JoxTraex 2012-02-09 08:13:47

+0

我怀疑自动完成只有最常用的单词。 – 2012-02-09 08:18:21

+0

@JoxTraex使用索引节省空间?对不起,但这对我来说没有意义。也许我错过了什么? – 2012-02-09 08:19:06

回答

1

你会想要把你的话存储在prefix tree (or trie)。这种数据是一种节省空间的结构。

欲了解更多信息,请参见:https://gamedev.stackexchange.com/questions/4142/best-way-to-store-a-word-list-in-java-android

+0

+1 @Rohan Singh很好的答案。 – JoxTraex 2012-02-09 08:19:48

+0

你可以请建议一个策略来使用这个,我尝试序列化到一个文件,但它仍然非常巨大,使用GZip作品,但仍然我将不得不将Trie加载到内存,这将占用大量的空间,我试着分离基于第一个字母的尝试仍然获得20到70 MB之间的文件。 – OKAN 2012-02-09 19:35:15

0

您的数据库可能有如此多的额外信息包括,例如语法,语调,评论等。如果是这样的话,那么只有有限的重新创建数据库数据/列需要在手机内部使用。

相关问题