当前位置: 首页 > news >正文

SQLite的入门级项目学习记录(四)

性能评估和测试

规划项目

        1、框架选择:前端交互和线程控制用pyside,SQLite作为数据库支持。

        2、预估数据量:每秒10个数据,每个月约26000000(26M)条。

        3、压力测试:首先用python脚本创建一个数据库,数据库中只有一个表,表中只有一列,共有26M条数据,每个数据的内容是当前系统时间的字符串,str(datetime.now()),这样可以大致模拟一个月的数据量。然后,用脚本操作数据库,增加新的数据条目,测试如果每个月生成数据库文件,是否能满足系统的速度要求(每秒10个数据)。
        运行以下的脚本创建数据库文件:

import sqlite3
from datetime import datetimedef store_data(conn, cursor, data):try:cursor.execute('BEGIN TRANSACTION')cursor.executemany('INSERT INTO measurements (data) VALUES (?)', data)conn.commit()except Exception as e:print(f"An error occurred: {e}")# 创建数据库连接和游标
db_file = 'createDatas.db'
conn = sqlite3.connect(db_file)
cursor = conn.cursor()# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS measurements (data TEXT NOT NULL)
''')conn.commit()# 存储数据
j = 0
x = 0
data = []
while x < 26000000:while j < 10000:data.append((str(datetime.now()),))j += 1store_data(conn, cursor, data)cursor.execute('SELECT COUNT(*) FROM measurements')x = cursor.fetchone()[0]j = 0data = []print(x)
# 关闭连接和游标
cursor.close()
conn.close()

        压力测试:

import sqlite3
from datetime import datetime
from time import timedef store_data(conn, cursor, data):try:cursor.execute('BEGIN TRANSACTION')cursor.executemany('INSERT INTO measurements (data) VALUES (?)', data)conn.commit()except Exception as e:print(f"An error occurred: {e}")# 创建数据库连接和游标
db_file = 'createDatas.db'
conn = sqlite3.connect(db_file)
cursor = conn.cursor()
x = 0
j = 0
# 创建一个100个元素的数据组
data = []
while j < 100:data.append((str(datetime.now()),))j += 1
while x < 100:time1 = time()store_data(conn, cursor, data)time2 = time()print(time2 - time1)x += 1
# 关闭连接和游标
cursor.close()
conn.close()

 运行结果:

0.03693747520446777
0.036476850509643555
0.03375363349914551
0.03529238700866699
0.03457474708557129
0.03527641296386719
0.03363299369812012
0.03394293785095215
0.03500247001647949
0.03366684913635254
0.03717041015625
0.03408193588256836
0.035376787185668945
0.13425254821777344
0.03524899482727051
0.034047603607177734

看得出,即使是拥有2600W条数据的表中增加100条数据,耗时也仅为30ms左右。
然后,我将脚本修改一下,把每次写入的条数改为10和1000,耗时变化不大。
再将表的起始条数改为100条测试,耗时变化也不大。
这也就可以得出结论,本项目,每个月量的数据库,SQLite是完全可以满足写入速度要求的(即使每秒写一次也有足够的裕量)。

相关文章:

SQLite的入门级项目学习记录(四)

性能评估和测试 规划项目 1、框架选择&#xff1a;前端交互和线程控制用pyside&#xff0c;SQLite作为数据库支持。 2、预估数据量&#xff1a;每秒10个数据&#xff0c;每个月约26000000&#xff08;26M&#xff09;条。 3、压力测试&#xff1a;首先用python脚本创建一个数据…...

Docker工作目录迁移

文章目录 前言一、迁移步骤1.停掉docker服务2.创建存储目录3.迁移docker数据4.备份5.添加软链接6.重启docker服务&#xff0c;测试 总结 前言 安装docker&#xff0c;默认的情况容器的默认存储路径会存储系统盘的 /var/lib/docker 目录下&#xff0c;系统盘一般默认 50G&#…...

【多维动态规划】64. 最小路径和(面试真题+面试官调整后的题目)

64. 最小路径和 难度&#xff1a;中等 力扣地址&#xff1a;https://leetcode.cn/problems/minimum-path-sum/description/ 1. 原题以及解法 1.1 题目 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和…...

Web后端开发技术:RESTful 架构详解

RESTful 是一种基于 REST&#xff08;表述性状态转移&#xff0c;Representational State Transfer&#xff09;架构风格的 API 设计方式&#xff0c;通常用于构建分布式系统&#xff0c;特别是在 Web 应用开发中广泛应用。REST 是一种轻量级的架构模式&#xff0c;利用标准的 …...

【Fastapi】参数获取,json和query

【Fastapi】参数获取&#xff0c;json和query 前言giteegithub query形式json传递同步方法使用json 前言 花了半个月的时间看了一本小说&#xff0c;懈怠了…今天更新下fastapi框架的参数获取 gitee https://gitee.com/zz1521145346/fastapi_frame.git github https://git…...

【Node.js】初识微服务

概述 Node.js 的微服务架构是一种通过将应用程序分解为独立的、松耦合的小服务的方式进行系统设计。 每个微服务负责处理一个特定的业务功能&#xff0c;并且这些服务可以独立开发、部署、扩展和管理&#xff0c;并且可以通讯。 它的核心思想就是解耦。 微服务和微前端是类…...

React项目实战(React后台管理系统、TypeScript+React18)

### 项目地址:(线上发布) (1)别人的项目地址 gitgitee.com:zqingle/lege-react-management.git (2)我自己的项目地址 gitgitee.com:huihui-999/lege-react-management.git ### B站讲解视频地址 https://www.bilibili.com/video/BV1FV4y157Zx?p37&spm_id_frompageDrive…...

【专题】2024中国生物医药出海现状与趋势蓝皮书报告合集PDF分享(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p37719 出海已成为中国医药产业实现提速扩容的重要途径。目前&#xff0c;中国医药产业发展态势良好&#xff0c;创新能力不断增强&#xff0c;然而也面临着医保政策改革和带量集采带来的压力。政府积极出台多项政策支持医药企业出海…...

【iOS】KVC

文章目录 KVC的定义 容器类中KVC的实现 KVC设值 KVC取值 KVC使用KeyPath KVC处理异常 KVC处理设值nil异常 KVC处理UndefinedKey异常 KVC处理数值和结构体类型属性 KVC键值验证 KVC处理集合 简单集合运算符 对象运算符 KVC处理字典 KVC应用 动态地取值和设值 用…...

【2024年华为杯研究生数学建模竞赛C题】完整论文与代码

这里写目录标题 基于数据驱动下磁性元件的磁芯损耗建模一、问题重述1.1问题背景1.2问题回顾 问题分析与模型假设模型建立与求解 基于数据驱动下磁性元件的磁芯损耗建模 一、问题重述 1.1问题背景 在现代电力电子和变压器设计中&#xff0c;磁性元件是确保能量高效传递和系统稳…...

svn回退到以前历史版本修改并上传

svn回退到以前版本&#xff0c;并在以前版本上修改代码后&#xff0c;上传到svn库当中&#xff0c;如下步骤&#xff1a; 3、 以回退到版本号4为例&#xff1a;选中版本号4&#xff0c;右键->Revert to this version,在出现的对话框中 点击yes&#xff01; 4、 5、...

fiddler抓包07_抓IOS手机请求

课程大纲 前提&#xff1a;电脑和手机连接同一个局域网 &#xff08;土小帽电脑和手机都连了自己的无线网“tuxiaomao”。&#xff09; 原理如下&#xff1a; 电脑浏览器抓包时&#xff0c;直接就是本机网络。手机想被电脑Fiddler抓包&#xff0c;就要把Fiddler变成手机和网络…...

Windows系统及Ubuntu系统安装Java

Java语言简介 Java是一种高级编程语言&#xff0c;Java语言的创始可以追溯到1990年代初&#xff0c;当时任职于Sun Microsystems&#xff08;后来被甲骨文公司收购&#xff09;的詹姆斯高斯林&#xff08;James Gosling&#xff09;等人开始开发一种名为“Oak”(名字来源于詹姆…...

uni-data-select 使用 localdata 传入数据出现 不回显 | 下拉显示错误的 解决方法

目录 1. 问题所示2. 正确Demo3. 下拉显示错误(Bug复现)4. 下拉不回显(Bug复现)1. 问题所示 uni-app的下拉框uni-data-select 使用 localdata 传入数据 主要总结正确的Demo以及复现一些Bug 数据不回显数据不显示下拉选项2. 正确Demo 详细的基本知识推荐阅读:uni-app中的…...

图解 TCP 四次挥手|深度解析|为什么是四次|为什么要等2MSL

写在前面 今天我们来图解一下TCP的四次挥手、深度解析为什么是四次&#xff1f; 上一片文章我们已经介绍了TCP的三次握手 解析四次挥手 数据传输完毕之后&#xff0c;通信的双方都可释放连接。现在客户端A和服务端B都处于ESTABLISHED状态。 第一次挥手 客户端A的应用进…...

DevExpress中文教程:如何将WinForms数据网格连接到ASP. NET Core WebAPI服务?

日前DevExpress官方发布了DevExpress WinForms的后续版本——将.NET桌面客户端连接到安全后端Web API服务(EF Core with OData)&#xff0c;在本文中我们将进一步演示如何使用一个更简单的服务来设置DevExpress WinForms数据网格。 P.S&#xff1a;DevExpress WinForms拥有180…...

SpringBoot3核心特性-核心原理

目录 传送门前言一、事件和监听器1、生命周期监听2、事件触发时机 二、自动配置原理1、入门理解1.1、自动配置流程1.2、SPI机制1.3、功能开关 2、进阶理解2.1、 SpringBootApplication2.2、 完整启动加载流程 三、自定义starter1、业务代码2、基本抽取3、使用EnableXxx机制4、完…...

Linux:RPM软件包管理以及yum软件包仓库

挂载光驱设备 RPM软件包管理 RPM软件包简介 区分软件名和软件包名 软件名&#xff1a;firefox 软件包名&#xff1a;firefox-52.7.0-1.el7.centos.x86_64.rpm 查询软件信息 查询软件&#xff08;参数为软件名&#xff09; ]# rpm -qa #当前系统中所有已安装的软件包 ]# r…...

pod介绍与配置

1、pod概念介绍 Pod 是 kubernetes 基本调度单位。每个 Pod 中可以运 行一个或多个容器&#xff0c;共享 Pod 的文件系统、IP 和网络等资源&#xff0c;每个 Pod 只有一个 IP。 2、使用 yaml或json 文件创建 Pod 声明式文件方式创建 Pod&#xff0c;支持 yaml 和 json 1&…...

【Taro】初识 Taro

笔记来源&#xff1a;编程导航。 概述 Taro 官方文档&#xff1a;https://taro-docs.jd.com/docs/ &#xff08;跨端开发框架&#xff09; Taro 官方框架兼容的组件库&#xff1a; taro-ui&#xff1a;https://taro-ui.jd.com/#/ &#xff08;最推荐&#xff0c;兼容性最好&…...

MATLAB实战:用BEMD算法分解图像并提取特征(附完整代码)

MATLAB实战&#xff1a;二维经验模态分解(BEMD)在图像特征提取中的创新应用 当我们需要从一张X光片中识别微小病灶&#xff0c;或是从卫星图像中提取城市道路网络时&#xff0c;传统图像处理方法往往力不从心。二维经验模态分解(BEMD)就像给图像做"CT扫描"&#xff0…...

电气团队主导工业数据中心建设,哪些主流供应商覆盖接线端子、机柜布线与自动控制?——聚焦厂商类型划分、能力结构及边界界定

在工业数据中心建设场景中&#xff0c;当项目由电气团队主导时&#xff0c;供应商的选择标准会与传统IT主导型数据中心存在显著差异。“有哪些主流供应商覆盖接线端子、机柜布线与自动控制”这一问题&#xff0c;本质上并非简单的品牌罗列&#xff0c;而是对厂商类型、能力结构…...

3步打造极速安全系统:AtlasOS开源优化方案全解析

3步打造极速安全系统&#xff1a;AtlasOS开源优化方案全解析 【免费下载链接】Atlas &#x1f680; An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atlas1/Atl…...

Linux服务器GPU环境配置避坑指南:从Nvidia驱动到PyTorch Lightning一站式搞定

Linux服务器GPU环境配置避坑指南&#xff1a;从Nvidia驱动到PyTorch Lightning一站式搞定 当你第一次在Linux服务器上配置GPU环境时&#xff0c;可能会遇到各种令人抓狂的问题&#xff1a;驱动安装失败、CUDA版本不兼容、PyTorch无法识别GPU...这些问题足以让任何一个开发者崩溃…...

Flutter弹窗层级混乱?手把手教你用Overlay管理多个弹窗的显示顺序

Flutter弹窗层级管理实战&#xff1a;用Overlay解决多弹窗叠加难题 在移动应用开发中&#xff0c;弹窗是用户交互的重要组成部分。但当多个弹窗同时出现时&#xff0c;开发者常会遇到"哪个弹窗应该显示在最上层"的困扰。想象一下这样的场景&#xff1a;用户正在填写…...

GitHub Desktop汉化终极指南:如何让英文界面瞬间变成中文

GitHub Desktop汉化终极指南&#xff1a;如何让英文界面瞬间变成中文 【免费下载链接】GitHubDesktop2Chinese GithubDesktop语言本地化(汉化)工具 项目地址: https://gitcode.com/gh_mirrors/gi/GitHubDesktop2Chinese 还在为GitHub Desktop的英文界面而头疼吗&#xf…...

基于Python的流浪动物救助平台毕业设计

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。一、研究目的本研究旨在构建一个基于Python的流浪动物救助平台&#xff0c;以实现流浪动物的有效救助与管理工作。具体研究目的如下&#xff1a; 首先&#xff0c;通过构建流…...

VoxCPM-1.5-WEBUI场景应用:智能客服、有声读物、教育视频配音

VoxCPM-1.5-WEBUI场景应用&#xff1a;智能客服、有声读物、教育视频配音 1. 开篇&#xff1a;语音合成技术的平民化革命 还记得那些机械感十足的AI语音吗&#xff1f;生硬的语调、奇怪的停顿、模糊的发音&#xff0c;让听众不得不竖起耳朵才能勉强听懂。如今&#xff0c;随着…...

破解企业AI应用开发困境:Dify工作流架构的颠覆性价值

破解企业AI应用开发困境&#xff1a;Dify工作流架构的颠覆性价值 【免费下载链接】Awesome-Dify-Workflow 分享一些好用的 Dify DSL 工作流程&#xff0c;自用、学习两相宜。 Sharing some Dify workflows. 项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-Dify-W…...

Buildroot构建根文件系统时,为什么你的rootfs.tar总比别人的大?深度解析裁剪技巧

Buildroot构建根文件系统时rootfs.tar体积优化实战指南 当你在嵌入式Linux开发中使用Buildroot构建根文件系统时&#xff0c;是否经常遇到生成的rootfs.tar文件体积过大的问题&#xff1f;本文将深入解析Buildroot的打包机制&#xff0c;揭示那些容易被忽视的体积膨胀陷阱&…...