PC端本地存储方案,Windows和Mac双端通用方案

2023-10-26

功能要求:缓存数据

没有频繁的读写,存储服务端下发的数据,当数据有更新的时候,本地存储会进行更新,同时刷新内存。
本地存储作为持久化储存方案,程序每次启动时会读取数据加载到内存,当数据有更新的时候,也会进行内存刷新。

从需求解析:存储的特点是持久化、稳定、读写频率不高。

方案预研

方案一:sqlite3本地存储
方案二:文件存储

sqlite3本地存储

考虑这个方案的原因是,sqlite是一个成熟的跨平台存储方案,比较稳定和成熟,且在依赖的项目中,已经使用了sqlite3来进行本地存储,且在落盘的时候就可以将数据分类落表,但在实现过程中,发现了可扩展性不高的问题,当后续数据有修改,就很可能需要修改数据表内容,造成不兼容。

文件存储

比较简单,且需要存储的数据量不大,读取频率低,可以再加载到内存的过程中对数据进行梳理。

方案比较

SQLite作为一个嵌入数据库,并没有完全实现SQL,并且操作上来说也不见得比自己操作文件要来的好,但是会比较好组织,而且符合数据分离的设计思想,文件的话根据不同的操作文件的表现是不同的(数据代表意义不同),可扩展性也比较低一些。
文件,就操作简单一些吧!没什么大的优势,简单的东西简单实现就好!数据关系不复杂的话还是用文件比较好!

综上所述

因为此次数据的量级比较小,且读写频率不高,并且格式可能经常修改,有较高的安全性考虑,所以考虑使用文件存储。

本篇文章可借鉴性不高!
关于到底选择何种方案,很可惜没有可复用的内容,希望有大佬看到这篇文章后,予以指点

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PC端本地存储方案,Windows和Mac双端通用方案 的相关文章

  • 如何杀死Mysql“show processlist”中的所有进程?

    因为我在那里看到了很多进程 并且 时间 列显示了所有进程的大值 大规模屠杀操作节省时间 在 MySql 本身中执行此操作 运行这些命令 mysql gt select concat KILL id from information sche
  • Firebird数据库模式/数据差异工具

    RedGate http www red gate com为 Microsoft SQL Server 制作一个工具 允许您捕获两个数据库之间的差异 它生成更新数据库模式所需的脚本 同时保留数据 我需要为 Firebird 数据库找到这样的
  • 将字段重新格式化为列,其他字段(与先前结构中成为列的字段配对)成为新列中的字段

    我的任务是清理慈善机构设计的移动应用程序中的数据 在一个部分中 用户问答应用程序使用会话由一行表示 该部分由重复的问题答案字段对组成 其中一个字段代表所提出的问题 然后它旁边的字段代表相应的答案 每个问题 字段和答案列对一起代表一个独特的问
  • 如何通过逗号分隔将 2 行合并为一行?

    我需要将这些单独的行合并到一列 我现在如何通过逗号分隔合并列 CID Flag Value 1 F 10 1 N 20 2 F 12 2 N 23 2 F 14 3 N 21 3 N
  • 使用 LIKE 和撇号的 Mysql 查询问题

    所以我有一个有趣的问题 我从未遇到过 并且似乎找不到太多有关纠正该问题的信息 我有一个庞大的数据库 里面有大量的数据 相当于 10 年的数据 并试图对其进行搜索 现在搜索功能运行良好 但最近有人让我注意到一个 错误 如果你愿意的话 我尝试对
  • 从核心数据存储创建 .sqlite 文件?

    我在书籍和提供 sqlite 文件下载的网站上看到过教程 sqlite 文件用于核心数据 如何获取 sqlite 文件FROM应用程序或核心数据存储TO我的桌面 如果您要创建一个预填充的 sqlite 文件以与 Core Data 一起使用
  • 如何在数据库中对 (Java) 枚举进行建模(使用 SQL92)

    您好 我正在使用名为 性别 的列对实体进行建模 在应用程序代码中 性别应该是一个 Java 枚举类型 有 2 个值 男性和女性 知道作为数据类型的枚举不是通用 SQL 语言 92 的一部分 您将如何建模它 数据模型必须是可移植的 以便由多个
  • sqlite 插入表中 select * from

    我需要在 Android 应用程序中将数据从一个表移动到另一个表 我想使用以下sql insert into MYTABLE2 select id STATUS risposta DATETIME now data ins from MYT
  • 如何找到查询结果的大小

    我在 Rails 中有以下查询 records Record select y id source where source gt source y id gt y id group y id source having count 1 如
  • 从SQLite列中获取所有数字字符串并进行总和计算

    我是 Android 和 SQLite 的新手 我在 SQLite 中有一个只有数字的 AMOUNT 列 我可以在 ListView 中显示它 但我无法找到任何我理解的方法来将它们全部添加并显示在 TextView 中 这是数据库助手 im
  • 寻找免费的 GUI 工具来使用 PostgreSQL [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 目前 我正在使用独立的 GUI 工具DbSchema http www dbschema com 设计
  • 如何在 PHP MYSQL 中将数据库表和每条记录从一台数据库服务器复制到另一台数据库服务器?>

    您好 我编写了一段代码 可以将数据库表从一个服务器复制到另一个服务器 但是每个表的记录没有复制 如何编写一个可以将表和每个记录从一个数据库服务器复制到另一个数据库服务器的函数 这是我的示例代码
  • 使用DBFlow,如何加密已经存在的数据库?

    我正在使用 DBFlow 来处理项目中的数据库 并且我想对现有数据库进行加密 我知道我可能必须删除现有的未加密数据库并创建另一个加密数据库 我也知道我可以将 SQLCipher 与 DBFlow 一起使用 如上所述文档 https gith
  • 术语 SSTable 和 LSM Tree 之间有什么区别

    这两个术语可以互换使用吗 我读过有关 SSTable 工作原理的文章 通常文章都会开始提到 LSM Tree 然而 它们似乎是同一件事 我什么时候应该使用一个术语而不是另一个术语 对于凡人来说 SSTables 和 LSM Trees 的最
  • 有很多数据库视图可以吗?

    我很少 每月 每季度 使用 Microsoft SQL Server 2005 数据库视图生成数百份 Crystal Reports 报告 在我不读取这些视图的所有时间里 这些视图是否会浪费 CPU 周期和 RAM 因为我很少从视图中读取数
  • 如何将数据库查询的行转换为 XML 文件?

    我正在开发一个 Delphi 应用程序 该应用程序需要从一段工作中获取行并将其转换为单个 XML 文件 以便上传到第三方 Web 服务 有没有可用的组件或库可以做到这一点 如果不是 那么构建 DB2XML 转换器的最佳代码方法是什么 我注意
  • 在数据库中存储密码的最佳方法[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何实现 ALTER TABLE 的示例[重复]

    这个问题在这里已经有答案了 我已经多次问过这个问题 但尚未得到完整的答案 如何实现 ALTER TABLE 语句以向数据库添加列 有人可以给我举个例子吗 请阅读SQLite ALTER TABLE 参考 http sqlite org la
  • 从 SQLite 命令行 shell 中打开数据库文件

    我正在使用SQLite 命令行外壳 http www sqlite org sqlite html 如文档所述 我可以通过将数据库作为可执行文件的参数提供来打开数据库 sqlite3 data db 我不知道如何打开数据库文件在工具内在调用
  • 使用数据库进行日志记录

    大多数日志似乎都是纯文本形式 而不是放入 MySQL 其他类型的数据库中 这是否有原因 在我看来 将它们放入数据库将使分析变得非常非常容易 但这会以牺牲速度还是其他什么为代价 我不太关心可移植性 显然你会有数据库连接的文本日志 我能想到两大

随机推荐

  • 网络安全——从新手入门到大师的学习攻略

    最近经常有网友问我网络安全方面怎么样从入门到大师 或者成为黑客 红客等 其实我想说的是 只要你有毅力 能坚持学习各种必须的网络安全技术和理论知识 随着时间的积累 最终一定会成为你心中最想成为的网络安全专家 本文就着重讲解下网络安全从入门到大
  • Docker搭建漏洞靶场(Vulhub、Vulnapp、Vulfocus)

    文章目录 vulhub 靶场搭建 简介 环境搭建过程 vulnapp靶场搭建 vulfocus靶场搭建 简介 环境搭建 vulhub 靶场搭建 简介 Vulhub是一个面向大众的开源漏洞靶场 无需docker知识 简单执行一条命令即可编译
  • 数据中心联盟第五批大数据产品评测结果出炉,腾讯云大数据斩获多个奖项

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 近日 在数据中心联盟组织的第五批大数据产品评测中 腾讯云大数据平台取得了两项第一名 特别在Hbase性能上有非常亮眼的表现 其他各项成绩也名列前茅 本月7日 中国通信标准化协会常务副秘
  • 以太坊学习-笔记1

    加密 以太坊有两种不同类型的账户 外部拥有账户 EOA 和合约 EOA 的以太坊地址是从密钥对的公钥部分生成的 以太坊使用的系统是基于公钥加密的系统 密钥是成对出现的 由一个私有 秘密 密钥和一个公共密钥组成 私钥提供对账户的控制权 公钥将
  • Java加密之IV

    AES是一种 分组密码 密码学中 分组 block 密码的工作模式 mode of operation 允许使用同一个分组密码密钥对多于一块的数据进行加密 并保证其安全性 分组密码自身只能加密长度等于密码分组长度的单块数据 若要加密变长数据
  • LeetCode 127. 单词接龙(C++)*

    思路 1 如果采用回溯法来的话会超时 2 这里采用构造图和广度优先遍历结合来实现 首先要构造图 需要将每个字符串对应一个数字id 然后边的构造使用矩阵来实现 这里采用将每一个字符串的id连接每个将该字符串的其中一个字符改为未知字符的字符串的
  • Python ffmpeg视频处理

    2 源码 coding utf 8 import ffmpeg import getpass import subprocess import matplotlib pyplot as plt import cv2 import numpy
  • android studio(自带SDK)安装教程

    下载网址 http www android studio org index php download hisversion 当下载为 exe程序时 直接双击 exe程序 之后点击Next 第一地址是安装路径 自己选择即可 第二个是SDK路
  • 手把手教你搭建Windows环境微信小程序的本地测试服务器

    Mac环境下 手把手教你搭建Mac环境微信小程序的本地测试服务器 问题的提出 Windows环境 方便快捷地搭建小程序的测试服务器 小程序对于网络请求的URL的特殊要求 不能出现端口号 不能用localhost 必须用https 主要步骤
  • elementUI侧边栏实现响应式,响应式侧边栏

    实现思路 准备两份aside侧边栏 借助display和媒体查询实现响应式 以下是完整代码
  • 初次使用vite新建项目报错

    第一次使用vite新建项目时报错 C Users AppData Roaming npm cache npx 13100 node modules create vite index js 4 import fs from node fs
  • 测试报告(进阶)

    功能测试可以手写一份测试报告 一 如何自动生成测试报告 unittest生成测试报告 测试用例 账号正确 密码错误 自己依照测试用例输入一组账号 点登录 会出现信息 密码错误 代码 import unittest import time f
  • vue 监听div宽高变化

    npm install element resize detector save import elementResizeDetectorMaker from element resize detector mounted const th
  • 如何使用chatglm-6b实现多卡训练

    首先先说ChatGLM 6b是支持多卡训练的 步骤如下 1 安装 NVIDIA CUDA Toolkit 要使用多卡训练 需要安装 CUDA Toolkit 可以在 NVIDIA 官网下载适用于操作系统的 CUDA 版本 2 确认所有的显卡
  • 实验四 MGRE与OSPF综合实验

    1 R6为ISP只能配置IP地址 R1 R5的环回为私有网段 2 R1 4 5为全连的MGRE结构 R1 2 3的星型的拓扑结构 R1为中心站点 3 所有私有网段可以互相通讯 私有网段使用OSPF完成 新建拓扑图 配置合理的IP R1 R2
  • 解决IDEA、PyCharm、PhpStorm及Android Studio中输入法卡住、光标不跟随的问题

    2017新版JetBrains全家桶下的各个软件都存在使用中文输入法时出现类似卡住 即光标不跟随的现象 解决办法 删除软件所在根目录下的jre或jre64文件夹 删除后软件会自动使用本机的jre 并可能提示jie已不是最新版 但不影响使用
  • 详解Vector

    目录 一 Vector介绍 二 源码解析 1 Vector实现的接口 2 Vector的构造方法 1 无参构造方法 2 带初始容量的构造方法 3 带初始容量和增量的构造方法 4 集合型构造方法 3 Vector中的变量 4 Vector主要
  • HttpRunner v4 一条用例是怎么被执行的

    HttpRunner 4 0版本 支持多种用例的编写格式 YAML JSON go test pytest 其中后面两种格式我们都知道通过调用测试函数执行 那YAML JSON这两种用例格式到底是怎样被运行的呢 下面我们一起分析一下 注意
  • zotero翻译、界面、笔记字体大小设置

    zotero翻译 界面 笔记字体大小设置 方式一 编辑器出设置 图中分别对应翻译 界面 笔记字体大小设置 方式二 图形界面设置
  • PC端本地存储方案,Windows和Mac双端通用方案

    功能要求 缓存数据 没有频繁的读写 存储服务端下发的数据 当数据有更新的时候 本地存储会进行更新 同时刷新内存 本地存储作为持久化储存方案 程序每次启动时会读取数据加载到内存 当数据有更新的时候 也会进行内存刷新 从需求解析 存储的特点是持