90设计网站官网首页国内最好的编程培训学校
90设计网站官网首页,国内最好的编程培训学校,wordpress文章排行,门户网站开发公司排名GC机制 GC机制又称垃圾回收机制#xff0c;是Python解释器自带一种机#xff0c;专门用来回收不可用的变量值所占用的内存空间 有三个核心#xff0c;分别是引用计数、标记清除和分代回收 引用计数#xff1a;一个变量值如果有一个变量名指向#xff0c;那么在它身上就计…GC机制 GC机制又称垃圾回收机制是Python解释器自带一种机专门用来回收不可用的变量值所占用的内存空间 有三个核心分别是引用计数、标记清除和分代回收 引用计数一个变量值如果有一个变量名指向那么在它身上就计数1引用计数为0的数据都为垃圾数据我们也会把引用计数为0的数据清除点 标记清除当我们的内存空间即将要沾满的时候这个时候会暂停所有程序的执行开始扫描内存空间中得数据把垃圾数据进行打标签然后统一进行垃圾数据的清除。 分代回收扫描是否回收多次都未回收将不再扫描提高效率即对垃圾数据的监管频率逐渐下降。 数据库三大范式 数据库的三大范式是关系型数据库的表设计规范 在设计表时要遵循这三大范式有第一范式1NF第二范式2NF和第三范式3NF 第一范式(1NF)是指数据库表每列的值具有原子性不可再分割, 每个字段的值都只能是单一值, 比如hobby字段 [抽烟 烫头] 第二范式(2NF)是在第一范式(1NF)的基础上建立起来得主键以外的列必须完全依赖于主键比如学生id和课程id联合主键非主键列【分数】完全依赖于主键【学生id和课程id】,学生id和课程id两个值才能决定score的值 第三范式(3NF)是在第二范式的基础上建立起来的指非主键列之间不能传递依赖可以比喻成一对多的表比如上海表里有个个区而通过区表又可以有个个路 mysql有哪些索引类型 索引是存储引擎用于快速找到记录的一种数据结构这也是索引最基本的功能 一共有七种索引类型首先是主键索引、普通索引、唯一索引、全文索引、前缀索引、组合索引和空间索引 主键索引又叫聚簇索引mysql是一定会有主键索引如果按主键搜索速度是最快的普通索引通过变化大字段查询会提高速度如果字段变化小(性别年龄)不要建立普通索引唯一索引通常使用 UNIQUE 关键字不是为了提高访问速度而是为了避免数据出现重复组合索引又称联合索引多个字段一起查询以提高速度全文索引主要用来查找文本中的关键字。 事务的特性和隔离级别 事务有四大特性原子性、隔离性、一致性和持久性 原子性是事务包含的所有数据库操作要么全部成功要不全部失败回滚 隔离性是指事务之间相互隔离不受影响 一致性是指事务执行前后的状态要一致可理解为数据一致性 持久性是指事务完成之后对数据的修改是永恒的 隔离级别有四种读未提交、读已提交、可重复读取和串行化 读未提交是指一个事物读到了另一个事务未提交的数据存在脏读不可重复读幻读的问题 读已提交是指设置了这个级别一个事物读不到另一个事务未提交的数据解决了脏读但是存在不可重复读和幻读 可重复读取是指事务开启即在开始读取数据时不再允许修改操作这样就可以在同一个事务内两次读到的数据是一样的解决了脏读不可重复读问题存在幻读问题 串行化是指事务只能一个接着一个地执行但不能并发执行解决了脏读不可重复读和幻读问题牺牲了效率 脏读、不可重复读和幻读 事务隔离级别不同而并发开启事务操作数据就会出现不同的问题 脏读指的是读当前事务到了其他事务未提交的数据未提交意味着这些数据是不存在的 不可重复读指的是在一个事务内最开始读到的数据和事务结束前的任意时刻读到的同一批数据出现不一致的情况导致的原因是事务 A多次读取同一数据但事务B在事务A多次读取的过程中对数据作了更新并提交导致事务A多次读取同一数据时结果不一致 幻读是指select 某记录是否存在不存在准备插入此记录但执行 insert 时发现此记录已存在无法插入 qps、tps、并发量、pv和uv QPS指每秒查询率一台服务器每秒能够响应的查询次数每秒的响应请求数 TPS每秒处理的事务数包括一条消息入和一条消息出加上一次用户数据库访问 并发量指系统同时处理的请求或事务数可以直接理解为系统同时处理的请求数量 PV指页面访问量即页面浏览量或点击量用户每次刷新即被计算一次 可以统计服务一天的访问日志得到 UV指独立访客统计1天内访问某站点的用户数 DAU指日活跃用户数量常用于反映网站、app、网游的运营情况 MAU指月活跃用户数量 接口幂等性问题 无论调用多少次产生的效果是一样的比如用户多次点击按钮 只执行了一次 解决方案有 1、通过token机制下单接口的前一个接口只要一访问后端生成一个随机字符串存到redis中把随机字符串返回给前端然后调用业务接口请求时把随机字符串携带过去一般放在请求头部务器判断随机字符串是否存在redis中存在表示第一次请求然后redis删除随机字符串,继续执行业务如果判断随机字符串不存在redis中就表示是重复操作直接返回重复标记给client这样就保证了业务代码不被重复执行 2、使用唯一主键 3、使用唯一id 4、前端设置按钮只能点击一次 5、悲观锁和乐观锁 乐观锁和悲观锁 乐观锁假设最好的情况每次去拿数据的时候都认为别人不会修改所以不会上锁但是在更新的时候会判断一下在此期间别人有没有去更新这个数据乐观锁其实不是锁是数据库的字段每操作一次就1 这样后续的操作就对不上适用于写比较少的情况下(多读场景) 悲观锁才是真的锁住了只能有一个拿一把钥匙是比较悲观的锁总是假设最坏的情况每次去拿数据的时候都认为别人会修改所以每次在拿数据的时候都会上锁这样别人想拿这个数据就会阻塞直到它拿到锁 三次握手四次挥手 三次握手是指建立一个 TCP 连接时需要客户端和服务器总共发送3个包客户端发送一个包给服务端服务端表示收到并再发送一个包给客户端客户端然后发送应答表示收到 四次挥手则是客户端发送包到服务端服务端给客户端发送一条请求表示收到包了然后服务端又再次给客户端发送关闭包表示考虑好了最后客户端表示收到 由于四次挥手是因为如果服务器接收到客户端并且发送关闭的请求后回容易造成数据的丢失因此中间的这一段时间等待服务器把剩余的数据发送完是很有必要的 django中实现事务 1、全局开启事务在setting中设置可以局部禁用 2、Django提供了一个atomic装饰器它可以轻松地将一个视图函数或方法包裹在事务中。这个装饰器确保在其内部的代码块中执行的数据库操作要么全部成功要么全部失败 3、还可以使用atomic上下文管理器来定义事务块或objects.atomic方法 鸭子类型 鸭子类型是python语言面向对象中的一个概念面向对象有三大特性继承、封装和多态 当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子那么这只鸟就可以被称为鸭子。” 鸭子类型在程序设计中强调的是行为而不是类型只关心对象是否具备预期的方法或属性如果对象的行为符合预期那么就可以将其当作特定类型的对象来使用。有助于增强代码的灵活性和可维护性。 浏览器输入地址看到页面信息经历的过程 1、输入网址你在浏览器的地址栏中输入你想要访问的网址。 2、浏览器解析URL浏览器首先会解析你输入的URL检查其是否合法。 3、查找缓存浏览器会检查其自身的缓存以查看是否之前已经访问过该网页如果缓存中有该网页的内容那么浏览器会直接显示缓存的内容而不会再去服务器上请求数据。 4、如果缓存中没有找到相应的内容浏览器会进行域名系统解析以获取该网址对应的IP地址。 5、与服务器建立TCP连接。这个过程需要进行TCP三次握手以确保连接的可靠性。 6、TCP连接建立成功后浏览器会向服务器发送HTTP请求请求获取网页的内容。 7、服务器收到请求后会处理该请求并将网页的内容作为HTTP响应返回给浏览器。 8、浏览器收到服务器的响应后会解析响应的内容并将网页的内容显示出来。这包括解析HTML、CSS、JavaScript等以及下载和显示嵌入在HTML中的资源 9、关闭TCP连接当网页内容全部加载完成后浏览器会关闭与服务器的TCP连接。 今日思维导图
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88423.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!