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

Tushare 量化实战 05:数据库存储与SQL查询优化

前一篇解决了批量数据获取的速度问题,这篇解决数据持久化:如何将获取的数据存入数据库,并进行高效的SQL查询。选择数据库数据库对比数据库优点缺点适用场景SQLite轻量,单文件,零配置并发性能差开发环境,小规模MySQL成熟稳定,并发好需部署,配置复杂生产环境,中等规模PostgreSQL功能强大,支持JSON资源占用大大型项目,复杂查询MongoDB文档存储,灵活不支持复杂SQL半结构化数据选择:SQLite(开发)+ MySQL(生产)表结构设计股票基础信息表-- stock_basic 表CREATETABLEstock_basic(ts_codeVARCHAR(20)PRIMARYKEY,-- 股票代码symbolVARCHAR(10)NOTNULL,-- 股票代码(不带后缀)nameVARCHAR(50)NOTNULL,-- 股票名称areaVARCHAR(50),-- 所属地域industryVARCHAR(50),-- 所属行业list_statusVARCHAR(1)NOTNULL,-- 上市状态(L 上市/D 退市/P 暂停)list_dateDATE,-- 上市日期delist_dateDATE,-- 退市日期updated_atTIMESTAMPDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP);-- 索引CREATEINDEXidx_industryONstock_basic(industry);CREATEINDEXidx_list_statusONstock_basic(list_status);日线行情表-- daily_quotes 表CREATETABLEdaily_quotes(idBIGINTAUTO_INCREMENTPRIMARYKEY,-- 自增IDts_codeVARCHAR(20)NOTNULL,-- 股票代码trade_dateDATENOTNULL,-- 交易日期openDECIMAL(10,4),-- 开盘价highDECIMAL(10,4),-- 最高价lowDECIMAL(10,4),-- 最低价closeDECIMAL(10,4),-- 收盘价pre_closeDECIMAL(10,4),-- 前收盘价changeDECIMAL(10,4),-- 涨跌额pct_chgDECIMAL(10,4),-- 涨跌幅volDECIMAL(15,2),-- 成交量(手)amountDECIMAL(20,2),-- 成交额(万元)created_atTIMESTAMPDEFAULTCURRENT_TIMESTAMP,updated_atTIMESTAMPDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,-- 唯一索引,避免重复数据UNIQUEKEYuk_code_date(ts_code,trade_date));-- 索引CREATEINDEXidx_code_dateONdaily_quotes(ts_code,trade_date);CREATEINDEXidx_dateONdaily_quotes(trade_date);CREATEINDEXidx_pct_chgONdaily_quotes(pct_chg);股票列表表(沪深300/中证500等)-- index_weight 表CREATETABLEindex_weight(idBIGINTAUTO_INCREMENTPRIMARYKEY,index_codeVARCHAR(20)NOTNULL,-- 指数代码ts_codeVARCHAR(20)NOTNULL,-- 股票代码trade_dateDATENOTNULL,-- 交易日期weightDECIMAL(10,6),-- 权重created_atTIMESTAMPDEFAULTCURRENT_TIMESTAMP,UNIQUEKEYuk_index_code_date(index_code,ts_code,trade_date));-- 索引CREATEINDEXidx_index_codeONindex_weight(index_code,trade_date);CREATEINDEXidx_ts_codeONindex_weight(ts_code,trade_date);数据库操作封装基础数据库类创建src/db/database.py:"""数据库操作封装"""fromsqlalchemyimportcreate_engine,textfromsqlalchemy.ormimportsessionmaker,SessionfromtypingimportOptional,List,Dict,AnyimportpandasaspdclassDatabase:"""数据库操作类"""def__init__(self,url:str):""" 初始化数据库连接 Args: url: 数据库连接字符串 SQLite: 'sqlite:///data/db/quant.db' MySQL: 'mysql+mysqlconnector://user:pass@localhost/quant' """self.engine=create_engine(url,pool_pre_ping=True)self.Session=sessionmaker(bind=self.engine

相关文章:

Tushare 量化实战 05:数据库存储与SQL查询优化

前一篇解决了批量数据获取的速度问题,这篇解决数据持久化:如何将获取的数据存入数据库,并进行高效的SQL查询。 选择数据库 数据库对比 数据库 优点 缺点 适用场景 SQLite 轻量,单文件,零配置 并发性能差 开发环境,小规模 MySQL 成熟稳定,并发好 需部署,配置复杂 生产…...

基于N32G430与INA199的USB功率监测仪表设计

1. 项目概述本项目是一款基于国产32位微控制器N32G430C8L7与高精度电流检测芯片INA199构建的便携式USB功率监测仪表。其核心功能为实时采集并显示接入USB端口的负载电压、电流及瞬时功率值,适用于USB供电设备功耗评估、快充协议兼容性验证、移动电源输出特性测试等典…...

VSCode本地历史记录优化配置:从基础设置到高级技巧

1. 为什么你需要一个更聪明的本地历史记录? 不知道你有没有过这样的经历:写代码时突然灵光一闪,噼里啪啦一顿操作,把整个函数重写了一遍。运行一下,结果还不如改之前。这时候你一拍大腿,想看看刚才到底改了…...

抖音直播高效下载解决方案:从痛点到全流程自动化指南

抖音直播高效下载解决方案:从痛点到全流程自动化指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 作为内容创作者,你是否经历过这样的场景:花费数小时录制的直播内容因…...

嵌入式灯光装置中的光机集成设计实践

1. 项目概述“伊洛玛丽的彩色灯光画”是一个以人像光影艺术表达为核心的嵌入式灯光装置项目。其核心目标并非实现复杂交互或高精度控制,而是通过硬件结构、光学路径与基础驱动电路的协同设计,在低成本前提下达成柔和、均匀、富有层次感的背光渲染效果。项…...

Qwen2.5-VL-7B-Instruct实战体验:纯本地部署,无需网络,一键清空会话

Qwen2.5-VL-7B-Instruct实战体验:纯本地部署,无需网络,一键清空会话 1. 引言:你的本地全能视觉助手来了 想象一下,你手头有一张复杂的图表需要解读,或者一份扫描的文档需要提取文字,甚至是一张…...

Lingyuxiu MXJ LoRA GPU利用率优化教程:显存占用从32G降至24G的关键配置

Lingyuxiu MXJ LoRA GPU利用率优化教程:显存占用从32G降至24G的关键配置 1. 项目概述 Lingyuxiu MXJ LoRA创作引擎是一款专门针对唯美真人人像风格设计的轻量化文本生成图像系统。这个项目最大的特点是在保持高质量人像生成效果的同时,大幅降低了硬件门…...

COMSOL Multiphysics 实战解析:电子芯片散热系统设计与优化

1. 从零开始:为什么芯片散热仿真这么重要? 大家好,我是老张,在芯片和硬件散热这个行当里摸爬滚打了十几年。这些年,我亲眼看着芯片的功耗一路飙升,从几十瓦到几百瓦,甚至上千瓦。一个很现实的问…...

从零到一:Texmaker与TeX Live的协同安装与配置实战

1. 为什么选择 Texmaker 与 TeX Live 这对黄金搭档? 如果你正在为毕业论文、学术论文或者技术报告发愁,尤其是当你的文档里塞满了复杂的数学公式、精美的图表和严格的排版要求时,Word 这类所见即所得的编辑器可能就会让你感到力不从心。这时候…...

快速上手圣女司幼幽模型:Gradio WebUI操作详解与提示词技巧

快速上手圣女司幼幽模型:Gradio WebUI操作详解与提示词技巧 1. 引言:从零开始,用文字召唤你的专属圣女 你是否曾幻想过,仅凭一段文字描述,就能让一位只存在于想象中的角色跃然纸上?现在,这个幻…...

Android16进阶之MediaPlayer.getAudioSessionId调用流程与实战(二百三十七)

简介: CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐:《Android系统多媒体进阶实战》🚀 Android Audio工程师专栏地址: Audio工程师进阶系列【原创干货持续更新中……】🚀 Android多媒体专栏地址&a…...

微信生态新跳板:一文详解H5唤起小程序的URL Scheme实战

1. 为什么说URL Scheme是微信生态的“新跳板”? 最近有好几个做电商的朋友跑来问我,说他们在抖音、微博这些地方投广告,用户点进来是个H5页面,但最终下单得去他们的小程序。这中间的跳转,老是出问题,要么跳…...

3D打印耗材干燥系统:闭环温控硬件设计与PID实现

1. 项目概述3D打印耗材受潮是影响打印质量的典型问题。当PLA、ABS或PETG等聚合物材料吸收环境水分后,其熔融流动性发生改变,在挤出过程中易产生气泡、拉丝、层间结合力下降及表面粗糙等缺陷。传统干燥方案多依赖密封箱体配合硅胶干燥剂,该方法…...

GMS测试环境搭建指南:从零开始配置Linux系统与必备工具

1. 环境准备:从一块空白硬盘到Linux桌面 很多刚接触GMS测试的朋友,一听到要自己搭环境就头大,感觉又要装系统又要配网络,一堆命令看得眼花。别慌,这事儿我干过不下几十次了,从给新同事配机器到批量部署测试…...

OpenVisualSense-Lite:轻量级多模态嵌入式视觉融合平台

1. 项目概述OpenVisualSense-Lite 是一款面向嵌入式视觉感知应用的轻量级融合成像平台,其设计目标并非追求极致性能参数,而是构建一个可验证、可扩展、可复现的硬件-算法协同验证载体。该系统以“功能闭环”为第一设计原则,在资源受限条件下完…...

基于专用ASIC的节日触摸灯光装置设计

1. 项目概述“2025福兴大发”是一款面向节日装饰与交互式电子工艺品场景设计的嵌入式触摸感应灯光装置。其核心目标是将传统民俗符号——“福”字,通过现代电子技术实现动态视觉表达:在保持简洁外观的前提下,集成低功耗触摸唤醒、多模式LED驱…...

从零到一:实战华为OceanStor SAN存储与Linux服务器的iSCSI对接

1. 环境准备:理解iSCSI与SAN存储的“桥梁”作用 大家好,我是老张,一个在运维圈子里摸爬滚打了十多年的老家伙。今天咱们不聊虚的,就来手把手干一件在数据中心里特别常见,但对新手又有点“发怵”的活儿:把一…...

浪潮服务器NVMe硬盘通过Intel VROC实现高效RAID配置实战指南

1. 为什么你需要关注浪潮服务器上的NVMe RAID? 如果你手头有浪潮的服务器,并且已经或者打算装上几块NVMe固态硬盘,那你可能正面临一个幸福的烦恼:单块NVMe盘速度已经快得飞起,但怎么才能让它们“组团”工作&#xff0c…...

3步解锁加密音频:qmc-decoder开源工具全解析

3步解锁加密音频:qmc-decoder开源工具全解析 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾遇到这样的困扰:下载的QQ音乐文件无法在手机、…...

【Dify多智能体协同工作流配置终极指南】:20年架构师亲授5大避坑要点与3步上线实战法

第一章:Dify Multi-Agent 协同工作流配置全景认知Dify 的 Multi-Agent 协同工作流并非简单串联多个 LLM 节点,而是基于可编排的 Agent 生命周期管理、上下文传递契约与状态路由机制构建的分布式智能体协作范式。其核心配置要素涵盖角色定义、工具绑定、消…...

DoubleQoLMod-zh:工业效率工具的革命与实践

DoubleQoLMod-zh:工业效率工具的革命与实践 【免费下载链接】DoubleQoLMod-zh 项目地址: https://gitcode.com/gh_mirrors/do/DoubleQoLMod-zh 在《Captain of Industry》的工业世界中,每一位玩家都面临着资源调配复杂、生产效率低下、全局视野受…...

WORD自动编号全攻略:从基础到高级定制(图文并茂)

1. 自动编号:不只是“1、2、3”那么简单 很多朋友一听到WORD的“自动编号”,脑子里蹦出来的就是“1、2、3”或者“A、B、C”。我以前也是这么想的,觉得这功能不就是给段落前面加个顺序嘛,能有多复杂?直到有一次&#x…...

C#与.NET Core微服务实战:从架构设计到Docker部署的完整指南

1. 微服务架构设计:从单体到微服务的思维转变 很多刚开始接触微服务的朋友,可能和我当初一样,觉得这玩意儿就是把一个大项目拆成几个小项目,听起来简单,做起来却处处是坑。我最早做的一个电商系统,就是典型…...

【内存溢出】“意志力补丁”为什么总会导致系统崩溃?

【生命OS系统状态提示】当前篇目: 篇2系统状态: 🔧 补丁方案失效分析当前任务: 定位底层根本原因老哥,咱们通过上篇看清了系统报错,很多人下决心戒烟,但都会经历一个挺熟悉的剧情。正如一个哥们…...

VMware与Ubuntu 23高效协作指南:共享剪贴板与文件夹的完整配置流程

1. 为什么需要共享?从“隔阂”到“无缝”的体验跃迁 如果你和我一样,经常在Windows主机上用VMware跑Ubuntu虚拟机做开发或学习,那你一定经历过这种“割裂感”:在主机上复制了一段代码,想粘贴到虚拟机的编辑器里&#x…...

V免签二开实战:从源码到易支付接口的无缝集成指南

1. 为什么你需要V免签二开与易支付集成? 如果你自己折腾过个人网站或者独立开发过一些小工具,肯定遇到过“怎么收钱”这个老大难问题。想接个微信支付、支付宝官方接口?门槛高得吓人,动不动就要营业执照、对公账户,个人…...

突破音频加密枷锁:qmc-decoder解放你的音乐收藏

突破音频加密枷锁:qmc-decoder解放你的音乐收藏 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经遇到过这样的困境:花费金钱购买的音乐&am…...

快速部署fft npainting lama:跟着教程,10分钟搭建个人AI图片修复站

快速部署fft npainting lama:跟着教程,10分钟搭建个人AI图片修复站 1. 引言:为什么你需要一个自己的AI图片修复工具? 你有没有遇到过这样的烦恼?一张珍贵的家庭老照片,上面有几道划痕;一张精心…...

开源工具如何解决鸣潮游戏性能问题?提升帧率与优化体验的完整方案

开源工具如何解决鸣潮游戏性能问题?提升帧率与优化体验的完整方案 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 你是否正在寻找一款能够有效解决鸣潮游戏卡顿、帧率不稳定问题的游戏工具&…...

突破网页图片格式壁垒:Save Image as Type让格式转换效率提升80%

突破网页图片格式壁垒:Save Image as Type让格式转换效率提升80% 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirrors…...