- 博客(62)
- 收藏
- 关注
原创 SELECT中 WHERE 和 ON 的区别
/报错,不能在普通查询里使用on,需要使用where。2.连接查询会产生一张中间表(临时表),ON是在生成中间表时使用的条件。where是在中间表生成后对中间表进行过滤使用的条件。2.内连接 交叉连接单独使用ON和WHERE没有区别。4.会带出所有的数据,没有匹配上的用NULL填充。3.先筛选出为表中的数据 再和事实表JOIN。1.只能用于连接 查询(内 外 交叉)1.外连接必须使用ON。就是先JOIN后筛选。
2023-11-03 11:07:27 231
原创 数据仓库分层架构与各自定义和用途
它可以提供实时和定期的报表、仪表盘、警报和预警功能,以帮助管理层和业务用户做出准确和及时的决策,在ADS层,可以进行数据治理和元数据管理工作。3.存储层(Data Warehouse Service Layer):简称DWS,数据的访问和查询,通过各种方式(SQL查询)从数据库中查询数据,数据安全和权限控制,包括用户身份验证,数据加密,访问控制,将数据汇总到不同粒度,以满足特定的业务需求,优化数据仓库的性能,通过索引优化,查询优化,缓存机制等手段来提高查询效率和访问时间。
2023-11-03 10:28:44 111
原创 SQL Server语言分类
常用的DML语句包括SELECT、INSERT、UPDATE、DELETE、FROM、WHERE、JOIN、GROUP BY、ORDER BY等。常用的DDL语句包括CREATE、ALTER、DROP、TABLE、VIEW、INDEX、PROCEDURE、FUNCTION等。常用的DCL语句包括GGRANT、REVOKE、CREATE USER、ALTER USER、DROP USER、DENY。常用的DQL语句SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等。
2023-11-03 09:56:35 121
原创 迭代器 生成器 装饰器
5.取一个数据量比较大的数据,不要不数据一次性放入内存,而是一点点取值,就可以把它做成一个生成器,可以节约内存。迭代器:可迭代对象调用__iter__,得到迭代器,迭代器有__iter__和__next__方法。可迭代对象:可以迭代的对象,可以用.next()、for取值的对象;字典、列表、元组、集合字符串、文件。装饰器:本质是一个闭包函数,作用是在不改变被装饰对象源代码和调用方式的基础上,为它加入新功能。迭代:不依赖于索引取值的方式,不需要关注他的位置,只要能一个个取值,就称之为迭代。
2023-08-10 09:09:31 80
原创 优化sql查询慢
可以通过 EXPLAIN 命令来查看查询计划,判断是否使用了索引,如果没有使用索引,就需要考虑添加索引。-索引优化:分析sql有没有走索引----》EXPLAIN SELECT * FROM orders WHERE name = 123;-避免全表扫描:避免在大表上进行全表扫描,可以通过限制查询条件或者使用分页查询来解决。-优化sql,不要写 前面的模糊查询。-尽量使用主键查询,尽量不模糊匹配。# 2 接口响应速度慢---》定位到是sql问题。-使用分页,避免全表搜索,扫码。
2023-08-08 22:34:39 38
原创 OSI七层协议
osi七层: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理连接层。-五层结构: 应用层(三个合成一个) 传输层 网络层 数据链路层 物理连接层。-会话层:负责建立、管理和终止表示层实体之间的会话连接。-应用层协议:http,ftp,https,dns。-表示层:https=http+ssl 的加密。-应用层 表示层 会话层(应用层)-数据帧:电信号的分组方式。-mac地址:以太网协议。
2023-08-08 22:17:33 34
原创 TCP的三次握手四次挥手
TCP协议处于OSI协议的传输层,是可靠连接,三次握手四次挥手保证了可靠连接数据不会丢失SYN:SYN=1表示要建立连接ACK:ACK=1表示收到建立连接的请求seq:随机数,建立连接无论客户端还是服务端只要建立连接就需要ack:回应请求就要加一返回FIN:表示断开连接。
2023-08-08 09:36:40 18
原创 http 和 https 的区别
加了一层处理加密信息的模块,防数据在传输过程中被盗取,保证数据的完整性。https在http与TCP之间加了一个加密(身份验证层)SSL证书提供了身份认证和加密通信。超文本传输安全协议,密文传输。超文本传输协议,明文传输。风险:窃听风险,篡改风险。
2023-08-04 09:35:39 24
原创 flask---g对象
如果我们想在request中存放path或者其他的数据,后续的视图函数都能拿到,但是可能在下次获取的时候会造成数据混乱的现象。g是global的简称,当次请求中存放的变量,在当次请求中一直存在。所以flask不建议使用向request中存放变量,而使用g对象。session可以夸请求。
2023-08-03 15:21:50 101
原创 flask请求扩展
2.如果请求的return值是None,会执行下一个请求扩展。2.e为异常对象,如果请求没有异常,e就是None。3.多个before_request从上往下执行。3.使用jsonify能够返回给前端。1.每个请求来了,都会执行。1.请求有异常的时候触发。4.不能做全局的异常处理。1.请求有异常时可以触发。1.请求走了以后会触发。3.一般用来记录日志。
2023-08-03 15:06:23 41
原创 鸭子类型详解
鸭子类型是python语言中面向对象的一个概念jav:实现类型,必须显示继承的这个类python:实现类型,遵循鸭子类型,可以不显示继承的一个类,只要类中有对硬的属性和方法,我们就可以称这几个类的对象为同一种类型。
2023-08-03 14:04:57 40
原创 为什么有了GIL锁还要有互斥锁
GIL和互斥锁的作用是不同的,GIL是为了保证解释器的线程安全,而互斥锁是为了保证共享资源的线程安全。在多线程环境下,即使有GIL的存在,如果不使用互斥锁来保护共享资源,仍然会出现数据竞争和不一致性的问题。2.GIL锁锁不住临界区,需要我们自己加锁,就是在线程操作数据之前加一把锁操作完毕以后释放锁,另一个线程想要操作数据必须要获取互斥锁,才能操作数据。在并发程序中,多个线程同时访问共享的数据,并且至少有一个线程对该数据进行了写操作,而且这些访问没有进行同步控制,导致最终的结果与预期不一致的情况。
2023-08-03 13:45:50 130
原创 flask的请求与响应
所有web:请求对象,响应对象(go,java,ptyhon)django:request(每个请求一个request),新手四件套flask:requset:全局的,但是也是每个请求一个request,新手三件套。
2023-08-02 20:22:32 28
原创 flask模版语法
jinjia2模版语法flask使用了但是它可以单独使用1.支持括号调用2.支持中括号取值简单来说就是python的语法 都可以直接使用。
2023-08-02 19:09:30 21
原创 为什么计算密集型用多进程,IO密集型用多线程
计算:消耗CPU;代码执行,算数,for都是计算io:不消耗CPU;打开文件,写入文件,网络操作都是io;如果遇到io,该线程会释放CPU的执行权限,转而去执行别的线程由于python有gill锁,开启多条线程,同一时刻只能有一条线程执行。
2023-08-02 15:09:41 284
原创 Python中的GIL
python是动态强类型语言 ,因为有垃圾回收机制,如果同一个进程下有多个线程同时在执行,垃圾回收是线程(同一个进程下的变量是共享的),该线程做垃圾回收时,如果其他线程在运行就可能会产生并发安全问题(数据安全的问题),由于当时只有单核CPU(即便开始多线程,同一时刻也只有一个线程在运行),作者强行加了GIL锁,为了保证在一个进程内,同一时刻只有一个线程,目的就是为了防止垃圾回收机制回收垃圾时出现数据紊乱 的问题,所以加了它。每个线程在执行的过程都需要先获取GIL锁,保证同一时刻只有一个线程可以执行代码。
2023-08-02 09:35:19 324
原创 装饰器详解
类作为装饰器只要将类中定义一个__call__方法,这样在类作为装饰器装饰函数时,函数运行时就会运行__call__方法中的内容,这就完成类作为函数装饰器的作用啦。如果是在路由下添加了装饰器,在每个app的视图方式下参数一定要添加endpoint参数。例:auth=auth(index)效果可能是修改类属性,修改类方法。必须放在app.router下。本质实际上就是一种语法糖。
2023-08-01 16:45:19 22
原创 接口幂等性的定义及解决
一个幂等操作的特点是:任意多次执行所产生的影响与一次执行的影响是一样的接口幂等性:同一个接口,多次发出同一个请求,必须保证操作只执行一次,无论执行多少次,对数据的影响都是一致的例子:支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条...这就没有保证接口的幂等性。
2023-08-01 14:56:24 29
原创 Python web框架 | wsgiref | wsgi | Werkzeug
【代码】Python web框架 | wsgiref | wsgi | Werkzeug。
2023-07-31 20:09:58 135
原创 Linux环境搭建和安装步骤
1.下载 VMware-workstation-full-17.0.0-20800274.exe 一路下一步2. 双击打开,创建虚拟机,配置参数。
2023-07-27 15:33:30 52
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人