【问题标题】:Disadvantage of using sqlite? [closed]使用 sqlite 的缺点? [关闭]
【发布时间】:2012-08-02 03:36:33
【问题描述】:

我想在我的应用中添加一些功能。我想要的是在那里放一个搜索按钮,我知道为了做到这一点,我必须将我的文本放在数据库中以使用 sql 进行查询。但是,在 android 上使用 sqlite 有缺点吗?例如,如果我必须在其中存储大文件?或者如果一个用户删除了我创建的应用程序,数据库会保留在他们的手机中吗?还有我可以在 android 上的 sqlite 上使用的最大尺寸是多少?除了使用数据库之外,还有其他替代方法吗?谢谢..

【问题讨论】:

    标签: android


    【解决方案1】:

    好吧,我不确定数据库,但通常外部存储数据永远不会被删除,除非用户自己删除它。尽管在旧版本的 android 中,数据曾经在应用卸载时被删除。

    我不确定缺点,但除了 SQLite,Android 中还有 3 个数据存储选项。一种是共享偏好,但它只满足原始数据类型,并在应用卸载时被删除。其次是内部存储器上的文件存储,在应用程序卸载时也会被删除。第三是外部存储器上的文件存储,它不会在应用卸载时删除,但如果存储安装在计算机上,则可供任何其他应用程序或计算机访问。

    SQLite 数据对应用程序来说是安全和私有的,我相信这是一种很好的存储方法。它的大小限制是 SQLite 的标准,检查SQLite limits here

    【讨论】:

      【解决方案2】:

      我认为在您的应用程序中使用 sqlite 并没有什么缺点。但是人们认为您不要忘记您必须仅在后台线程中执行所有数据库操作。如果您在主线程中运行,则 UI 将在处理时冻结大数据。

      如果您使用方法 getExternalStorageDirectory() 创建文件,也可以从 SDCard 中删除您的应用程序数据。请参阅下面的链接以使用该方法创建文件

      Android how to use Environment.getExternalStorageDirectory()

      【讨论】:

      • 哦,我明白了。如果我正确使用 SD 卡仅适用于有根安卓手机,对吗?谢谢..现在我必须学习线程..我希望它容易^_^再次感谢
      【解决方案3】:

      SQLite 似乎对您来说是一个很好的解决方案。如果您打算在 DB 中搜索文本,您可以使用 FTS 功能。我认为它支持大文件的能力exceeds现代硬件大写:)。 Sqlite 数据库是简单文件,因此您可以控制是否将其保存在用户设备上(将 db 文件放在 sdcard 上(强烈不推荐))或不保存(将 db 文件放入应用本地存储)。

      如果您多描述一下您的应用,我可以提出一些替代方案。

      【讨论】:

      • 嗯,我创建了一个信息丰富的应用程序,其中有一些酒店和餐厅,您可以通过 listview 查看。但是它们太多了,所以将它们滚动到底部对我来说有点烦人。所以我决定有一个搜索按钮,我可以在其中搜索我想要的酒店的名称..
      【解决方案4】:

      实际上,我相信这是 Sqlite 的优势之一。 Sqlite 是数据库的 1 文件解决方案,可让您轻松克隆和部署。至于卸载和大小限制的删除,我无法想象为什么它会与任何其他文件区别对待(因为它只是一个文件)

      【讨论】:

        猜你喜欢
        • 2011-09-10
        • 2011-06-07
        • 1970-01-01
        • 2012-03-10
        • 2013-01-26
        • 2019-11-16
        • 2012-04-20
        • 2011-01-02
        • 2011-04-01
        相关资源
        最近更新 更多