android - 将 AutoCompleteTextView 与中等大小的字符串数据集一起使用的最佳方法

标签 android database sqlite

如果我想使用 AutoCompleteTextView 作为搜索功能来根据用户当前输入的文本生成字符串列表(比如说大约 1000-3000 个字符串),从外部数据库或将它们存储在内部 SQLite 数据库中并从那里加载字符串?

我计划存储的字符串数量是否太大(每个字符串大约 10-20 个字符长,它们是常量,永远不会改变)以致于无法在 SQLite 数据库中使用?这会使我的应用程序变慢和/或增加多少?我应该只使用外部数据库吗?当用户输入字符串时加载时间会很快吗?

我之所以问,是因为如果我可以避免使用外部数据库,我会更愿意使用外部数据库,因为我不必担心访问数据库、维护数据库的用户数量以及安全问题。

最佳答案

would it be better to be loading these strings from an external database or having them stored in the internal SQLite database and loading the strings from there?

取决于您所说的“更好”是什么意思。如果将它们存储在本地数据库中,那么性能应该会更好,我建议在这种情况下使用索引。同时,此解决方案将需要更多内存,但我认为如果它们只是一个单词的字符串,则 3000 个字符串应该没问题。

Is the amount of strings I plan on storing too big to be used in the SQLite database?

取决于那些字符串是什么。如果它们不是太长,那么我认为应该没问题。如果每个字符串包含大量文本,那么我认为这可能会导致在通过 SQL 查询搜索它们时出现问题。

How much would this slow down and/or bulk up my app?

它不应该引人注意,您实际上可以为此创建一个测试,不应该花费很多精力。取决于您的用例。

Should I just use the external database?

如果这些字符串就像常量并且不会改变,您可以考虑将它们存储在本地数据库中,与网络加载解决方案相比,这应该会提高性能。

Would the loading times be fast as the user is typing in a string?

您可以在他们“停止”输入时加载第一组数据。在这里查看我对类似问题的回答:Best Practices for Handling Search

加载数据列表后,您可以使用此本地缓存进行进一步搜索,它应该足够快,以便用户不会注意到任何延迟。

关于android - 将 AutoCompleteTextView 与中等大小的字符串数据集一起使用的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36853611/

相关文章:

python - 如何将 Pandas Dataframe 写入现有的 Django 模型

java - OpenGL ES 2.0 和 OpenGL ES 3.0 的单一代码

sql - 使用 IF/ELSE 确定 SELECT INTO 语句

android - Android 4 上的 Google+ 登录错误,statusCode=SIGN_IN_REQUIRED

sql-server - 是否有适用于 SQL Server 2005 的数据大小调整工具?

mysql - MYSQL 表中行的顺序是否固定,以便查询始终按该顺序返回它们?

python - 对 Pandas 数据集执行 SQL 查询

c# - 如何使用C#发布的项目使SQLite数据库文件作为嵌入式资源工作

android - Okhttp 在 Android 7.0 上没有选择 http2

android - 如何找到每个版本的android支持库源代码