自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 python中数据库游标的使用总结

简单总结游标or流式读取的这块使用方式,具体使用方式还是得看官方文档。获取更大的块数会减少数据库驱动和数据库之间的往返次数,但会牺牲内存。postgresql提供了数据库游标的方式,可以不用一次性读到程序内存里,而是分多次加载到内存里,按批处理。分批获取结果,但由于 SQLite 不提供连接内查询之间的隔离,所以在向被迭代的表写入时要小心。时,才会使用服务器端游标。使用服务器端的游标从数据库流式传输结果,而不需要将整个结果集加载到内存中。当禁用服务器端游标时,其行为与不支持服务器端游标的数据库相同。...

2022-08-30 17:37:53 2278 1

原创 从数据库读取大量数据的方式对比

数据库读取百万或千万等大量数据时的方式比较,包括直接读取、分页读取以及游标的方式读取。

2022-08-30 17:27:08 998 1

原创 python的多线程和yield

拉取、入库的优化点:请求接口:场景:原来一次请求一个月的数据,可能会面临接口卡顿的问题,而且数据量过大,有时候会溢出解决:可以考虑由一次请求 切分为 小而多次请求加个for循环,分为小批量去请求,避免接口数据量过大将多次请求采用多线程进行,避免单线程I/O阻塞( 可以异步操作,可以先发送请求而不等待结果返回) with futures.ThreadPoolExecutor() as executor: # 可传入线程数 # 传入执行的方

2021-07-23 20:43:43 1175

原创 关于涉及到区间类型数值的缓存

关于涉及到区间类型数值的缓存场景是这样的:目前数据库里有每年公司节假日的日期信息(按天存储),现在需要计算一段时间内有多少天是节假日比如:2021.1.1 ~ 2021.6.23 内,有多少天是公司规定的节假日方案一:直接按天缓存,key为日期,value为该日期是否为节假日,这样我们按所求时间,遍历一遍缓存,判断key 对应的value,即可获得范围内节假日天数注意:需要缓存范围内所有的日期,不能只缓存节假日​ (假如只缓存节假日,如果在缓存里查找不到,不能判断该key是过期了还是说非节

2021-06-23 20:00:20 326

原创 python生成带超链接的excel表格

前提:项目里已经有函数功能将数据库数据生成excel表格需求:将现有的excel表格数值覆盖为url超链接利用pandas直接写入优点:省事,只要把数值用原始的excel函数 =HYPERLINK 替代,生成的表格数值既是超链接用pandas.to_excel() 即可直接生成表格,只要传入的参数没有遗漏,一般表格不会出错缺点:原始的excel函数限制参数不能超过255个字符长度,导致某些长度较长的超链接不能正常生效利用xlsxwriter直接写入优点:可xlsxwrite.

2021-06-11 16:59:12 3114 2

原创 mysql 联合索引查询规则

联合索引explain select *from test1where a = 1 and b = 2 and d = 20未建索引情况下:建了abd索引的情况下:用上了abd的索引,而且长度为12,整个索引都用上了,type类型变为 refexplain select *from test1where a = 1 and b > 2 and d = 20建了abd索引的情况下:在出现范围搜索的时候,还是用上了abd的索引,但是只用到了ab,长度为8,类型变

2021-04-22 16:45:31 631

原创 jdk动态代理的底层实现

动态代理生成动态对象的实现,需要传三个参数真实对象的类加载器真实对象的实现的所有接口你想要实现的代理策略(代理方法)public Object getProxyInstance() { return Proxy.newProxyInstance(target.getClass().getClassLoader(),//类加载器,用来生成类 target.getClass().getInterfaces(), //接口类型,实现所有的接口

2021-04-17 20:29:16 110

原创 mysql各种锁的实际应用场景

读操作普通的select不加锁这种普通的读操作在READ COMMITTED 和 REPEATABLE READ(默认的)级别下,都是利用MVCC来控制,只是拍快照的时机不一样。SELECT ....FROM .. 特殊的select会加锁SELECT ... LOCK IN SHARE MODE; -- 加读锁SELECT ... FOR UPDATE; --加写锁写操作只有INSERT特殊,一般不加锁(但是别的事务有干扰的情况下,别的事务会来帮执

2021-03-30 21:15:00 895

原创 java多线程学习

本文主要学习自b站黑马视频,还有摘抄自网上各个博客(一般有备注),如有侵权,请联系我,谢谢。基础知识程序和线程进程是资源分配的最小单位,线程是CPU调度的最小单位进程就是打开任务管理器后显示的那一堆应用进程,占有CPU,内存,硬盘,网络这些资源,一个进程在其执行的过程中可以产生多个线程。形象的讲,进程就是一个项目组,每个程序员就是里面的线程呀!当然一个程序员也可以叫做一个项目组,对应的就是一个进程只有一个线程。公司里面的任务是分配给项目组级别的,干活的就是其中的程序员。协程是.

2021-03-27 21:33:46 267

原创 volatile和reentrantLock原理

学习自https://www.bilibili.com/video/BV16J411h7Rd?p=247&spm_id_from=pageDriver主要截取里边的文字和图片,略加个人描述volatile原理volatile的底层实现原理是内存屏障,Memory Barrier (Memory Fence)对volatile变量的写指令后会加入写屏障在该屏障之前,共享变量的任何改动都会更新到主存中对volatile变量的读指令前会加入读屏障在该屏障之后,共享变量的读取,.

2021-02-21 21:45:55 209

原创 常用的设计模式总结

学习自尚硅谷设计模式视频 尚硅谷设计模式工厂模式主要来自 蜗牛学院设计模式1 观察者模式气象站设计一个开放型API,推送数据给网站,更新气象数据时候,需要同时**告知(推送)**网站1.1 普通public class Client { public static void main(String[] args) { //创建接入方 currentConditions CurrentConditions currentConditions = new C

2020-12-09 19:14:40 213 1

原创 软件工程各种UML总结

软件工程题目有同学询问考试重点,希望能尽早了解以便复习,那么我就说明一下。我们的考试注重实践过程,基本上没有需要死记硬背的内容,为了将来工程认证方便,题型如下:针对一个实际的系统需求进行建模出10道题,每题10分,包含以下内容:该系统用例图其中某个用例的描述系统的领域类图系统中,某个用例的时序图系统中,某个类的属性和方法按照某设计原则的设计ER图系统建立的包图体系结构体系结构知识扩展用例图用例描述[外链图片转存失败,源站可能有防盗链机制,建议将图片

2020-11-25 11:16:58 3086 13

原创 设计模式七大原则总结

设计模式七大原则前言本文主要内容来源于尚硅谷的设计模式视频,略带个人总结1 单一职责原则(SRP)一个类负责一项职责eg:交通工具类,同时管理海陆空可以拆分为多个类,分管海陆空(遵守单一职责原则,改动大)一个类里边写多个方法(方法少的时候才用),分管海陆空(在类的级别上不遵守原则,但在方法上还是遵守的,改动小)2 接口隔离原则(ISP)总结:接口设计的不能太大(很多个方法),不然实现类需要同时实现很多个方法拆分成多个接口拆成最小的3 依赖倒转原则(DIP)依赖倒转原则(

2020-11-24 21:04:38 219

原创 docker下的nginx

nginx1 启动nginx#取出nginx容器默认配置文件mkdir -p /data/nginx/docker run -d --name tmp-nginx-container nginxdocker cp tmp-nginx-container:/etc/nginx/nginx.conf /data/nginx/docker cp tmp-nginx-container:/etc/nginx/conf.d /data/nginx/docker cp tmp-nginx-containe

2020-11-22 21:56:14 276

原创 docker

笔记来自狂神docker教学视频1 安装安装docker1.# 卸载旧版本yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \

2020-11-21 14:33:52 145

原创 需求工程

1 导论1 需求工程的定义课本p12需求工程是所有需求开发活动的综合,它获取整理需求信息、 分析需求问题、记录需求、验证需求的正确性、管理需求。2 基本活动2 需求基础1 需求的定义定义:​ 课本p23(1)定义1:用户为了解决问题或达到某些目标所需要具备的条件或能力;(2)定义2:系统或系统部件为了满足合同、标准、规范或其它正式文档所规定的要求而需要具备的条件或能力;(3)对1或2中的一个条件或一种能力的一种文档化表述。总结:理解1:解决问题所需要的

2020-11-20 12:52:52 2930

原创 Java集合的 contains( ) 执行流程

Java集合的 contains( ) 执行原理1 问题描述想让classID一样的class对象的classTime叠加起来,目前是分开存放在list中方案:手动遍历利用List或者Set的contains( )去重改成用HashMap存放,key为ID,轻松解决问题 (不过这方法后来才想到)2 ArrayList的contains基于ArrayList测试需要重写equals方法基于 java 11ArrayList在contains方法中会调用Arra

2020-11-15 20:40:34 744

原创 Rabin-Karp(旋转哈希)算法

Rabin-Karp(旋转哈希)算法类似于窗口移动,只不过将字符串转为为数值(散列值)来计算。移动后的字符串散列值 = 旧字符串 - 第一位数字的值 * R(系数) + 新一位数字的值关键的代码实现(java):计算一段字符串的散列值:private long hash(String key,int M){ //计算 key[0...M-1]的散列值 long h = 0; for (int j = 0; j < M; j++) { h =

2020-11-12 20:35:53 694

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除