SELECT中 WHERE 和 ON 的区别 /报错,不能在普通查询里使用on,需要使用where。2.连接查询会产生一张中间表(临时表),ON是在生成中间表时使用的条件。where是在中间表生成后对中间表进行过滤使用的条件。2.内连接 交叉连接单独使用ON和WHERE没有区别。4.会带出所有的数据,没有匹配上的用NULL填充。3.先筛选出为表中的数据 再和事实表JOIN。1.只能用于连接 查询(内 外 交叉)1.外连接必须使用ON。就是先JOIN后筛选。
数据仓库分层架构与各自定义和用途 它可以提供实时和定期的报表、仪表盘、警报和预警功能,以帮助管理层和业务用户做出准确和及时的决策,在ADS层,可以进行数据治理和元数据管理工作。3.存储层(Data Warehouse Service Layer):简称DWS,数据的访问和查询,通过各种方式(SQL查询)从数据库中查询数据,数据安全和权限控制,包括用户身份验证,数据加密,访问控制,将数据汇总到不同粒度,以满足特定的业务需求,优化数据仓库的性能,通过索引优化,查询优化,缓存机制等手段来提高查询效率和访问时间。
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等。
迭代器 生成器 装饰器 5.取一个数据量比较大的数据,不要不数据一次性放入内存,而是一点点取值,就可以把它做成一个生成器,可以节约内存。迭代器:可迭代对象调用__iter__,得到迭代器,迭代器有__iter__和__next__方法。可迭代对象:可以迭代的对象,可以用.next()、for取值的对象;字典、列表、元组、集合字符串、文件。装饰器:本质是一个闭包函数,作用是在不改变被装饰对象源代码和调用方式的基础上,为它加入新功能。迭代:不依赖于索引取值的方式,不需要关注他的位置,只要能一个个取值,就称之为迭代。
优化sql查询慢 可以通过 EXPLAIN 命令来查看查询计划,判断是否使用了索引,如果没有使用索引,就需要考虑添加索引。-索引优化:分析sql有没有走索引----》EXPLAIN SELECT * FROM orders WHERE name = 123;-避免全表扫描:避免在大表上进行全表扫描,可以通过限制查询条件或者使用分页查询来解决。-优化sql,不要写 前面的模糊查询。-尽量使用主键查询,尽量不模糊匹配。# 2 接口响应速度慢---》定位到是sql问题。-使用分页,避免全表搜索,扫码。
OSI七层协议 osi七层: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理连接层。-五层结构: 应用层(三个合成一个) 传输层 网络层 数据链路层 物理连接层。-会话层:负责建立、管理和终止表示层实体之间的会话连接。-应用层协议:http,ftp,https,dns。-表示层:https=http+ssl 的加密。-应用层 表示层 会话层(应用层)-数据帧:电信号的分组方式。-mac地址:以太网协议。
TCP的三次握手四次挥手 TCP协议处于OSI协议的传输层,是可靠连接,三次握手四次挥手保证了可靠连接数据不会丢失SYN:SYN=1表示要建立连接ACK:ACK=1表示收到建立连接的请求seq:随机数,建立连接无论客户端还是服务端只要建立连接就需要ack:回应请求就要加一返回FIN:表示断开连接。
http 和 https 的区别 加了一层处理加密信息的模块,防数据在传输过程中被盗取,保证数据的完整性。https在http与TCP之间加了一个加密(身份验证层)SSL证书提供了身份认证和加密通信。超文本传输安全协议,密文传输。超文本传输协议,明文传输。风险:窃听风险,篡改风险。
flask---g对象 如果我们想在request中存放path或者其他的数据,后续的视图函数都能拿到,但是可能在下次获取的时候会造成数据混乱的现象。g是global的简称,当次请求中存放的变量,在当次请求中一直存在。所以flask不建议使用向request中存放变量,而使用g对象。session可以夸请求。
flask请求扩展 2.如果请求的return值是None,会执行下一个请求扩展。2.e为异常对象,如果请求没有异常,e就是None。3.多个before_request从上往下执行。3.使用jsonify能够返回给前端。1.每个请求来了,都会执行。1.请求有异常的时候触发。4.不能做全局的异常处理。1.请求有异常时可以触发。1.请求走了以后会触发。3.一般用来记录日志。
鸭子类型详解 鸭子类型是python语言中面向对象的一个概念jav:实现类型,必须显示继承的这个类python:实现类型,遵循鸭子类型,可以不显示继承的一个类,只要类中有对硬的属性和方法,我们就可以称这几个类的对象为同一种类型。
为什么有了GIL锁还要有互斥锁 GIL和互斥锁的作用是不同的,GIL是为了保证解释器的线程安全,而互斥锁是为了保证共享资源的线程安全。在多线程环境下,即使有GIL的存在,如果不使用互斥锁来保护共享资源,仍然会出现数据竞争和不一致性的问题。2.GIL锁锁不住临界区,需要我们自己加锁,就是在线程操作数据之前加一把锁操作完毕以后释放锁,另一个线程想要操作数据必须要获取互斥锁,才能操作数据。在并发程序中,多个线程同时访问共享的数据,并且至少有一个线程对该数据进行了写操作,而且这些访问没有进行同步控制,导致最终的结果与预期不一致的情况。
flask的请求与响应 所有web:请求对象,响应对象(go,java,ptyhon)django:request(每个请求一个request),新手四件套flask:requset:全局的,但是也是每个请求一个request,新手三件套。