04 2021 档案
摘要:临时表,是临时使用的一张表。有两种临时表: 本地临时表:只能在当前查询页面使用,新开查询不能使用它。 在表名前加#即可得本地临时表。eg: select TOP 10 * into #temp from table1; select * from #temp; 如果新开一个页面重新执行该句 sele
阅读全文
摘要:在创建索引的时候需要选择索引类型是hash还是Btree,对于两种索引类型的区别一直存在疑惑,因此今天找了些资料解答一下自己。 Hash索引与Btree索引的区别: hash索引:将索引键经过hash运算之后得出hash值和对应的行指针存放于一个hash表中。 检索效率非常高,可以一次定位。 仅能满
阅读全文
摘要:ES是海量数据查询的搜索引擎,广泛用于全文检索、日志分析、监控分析等场景。 ES有三个特点 轻松支持各种复杂的查询条件:分布式实时文件存储,采用倒排索引及自定义打分、排序能力与丰富的分词插件等,实现复杂查询条件的全文检索需求。 可扩展性强:天然支持分布式存储,可简单实现上千台服务器的分布式横向火绒。
阅读全文
摘要:什么是垂直搜索? 来自百度百科的回答: 垂直搜索引擎是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。垂直搜索是相对通用搜索引擎的信息量大、查询不准确、深度不够等提出来的新的搜索引擎服务模式,
阅读全文
摘要:OOP(面向对象编程 Object-Oriented Programming),是一种以对象为基础的编程模式。 优点: 易维护。 易拓展。 对象可重复使用。 四大特性: 封装性:对象属性是隐藏的,对象属性修改需要通过对象方法。 继承性:子类可以把父类的属性和方法都继承过来,无需重新定义。 多态性:多
阅读全文
摘要:go语言适用什么场景? go语言主要作为服务器端开发,适用于开发“大型软件”,其开发周期长,支持云计算,融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性。 适用场景: 处理日志 数据打包 虚拟机处理 文件系统 分布式系统 数据库代理等。 go语言的特性: 静态强类型 编译型 并发性 具备垃
阅读全文
摘要:以下介绍redis的几种类型:List、Pub/Sub、Stream 场景 List Pub/Sub Stream 阻塞式消费 支持 支持 支持 发布/订阅 不支持 支持 支持 重复消费 不支持 不支持 支持 持久化 支持 不支持 支持 消息堆积 内存持续增长 缓冲区溢出,消费者强制下线 可控制队列
阅读全文
摘要:目前有4种常见的php运行模式 CGI通用网关接口模式 每一个用户请求都会创建CGI子进程,然后处理请求,处理完后结束子进程。 每一个web请求php都必须重新解析php.ini、重新载入全部dll扩展并重新初始化全部数据结构(FAST-CGI只在进程启动时发生一次。)。 FAST-CGI模式 CG
阅读全文
摘要:需要使用幂等的场景: 前端重复提交 接口超时重试 消息队列重复消费 解决方案: token机制:①客户端请求获取token,服务端生成一个唯一ID作为token存在redis中;②客户端第二次请求时携带token,服务端校验token成功则执行业务操作并删除token,服务端校验token失败则表示
阅读全文
摘要:在网络延迟等不可控的因素下,消息被重复发送的问题不可避免,但是我们应该保证我们的消息不被重复消费。 如何解决? 在消费的业务逻辑里加入保证MQ重复消费的幂等性的操作。 什么是幂等性? 其任意多次执行多产生的影响均与一次执行的影响相同。 如何保证幂等性? 从业务的实际操作划分解决方案 仅使用消息进行数
阅读全文
摘要:页面卡顿,可能涉及到很多页面性能问题,有可能是来自前端,有可能是来自后端,也有可能是来自用户网络问题等。 有可能是前端加载的某些js文件加载失败了或者是报错了 有可能是该页面请求的接口太多了,导致数据返回慢,可适当做缓存 有可能是浏览器渲染的东西太多导致卡顿。 但页面卡顿更大的可能是来自内存泄漏。
阅读全文
摘要:监控是为了能让系统维护人员快速发现生产问题并定位到原因。 告警的类型有: 批处理效率:包括日终跑批处理效率和数据处理效率。需要配置超时阀值及监控。 流量监控:主要监控的指标有:TPS(每秒完成事务量)、HPS(每秒服务端收到的请求数)、IOPS(单位时间内系统能处理的IO请求数量)、QPS(每秒服务
阅读全文
摘要:在处理大数据量时可以将mysql读写分离以达到提高性能、缓解数据库压力、缓解服务器压力的目的。 什么是读写分离? 基本原理为主库处理事务型查询,从库处理select查询。数据库复制把事务型查询导致的变更同步到从库中。 读写分离的好处: 增加冗余 增加机器的处理能力 确保写的服务器压力小。 为什么读写
阅读全文
摘要:使用left join 时,on和where的条件的区别如下 on条件是在生成临时表时使用的条件,不管on中的条件是否为真,都会返回左表中的记录。 where条件是在临时表生成好后,在对临时表进行过滤条件,条件不为真的就全部过滤。 案例: select * from tab1 left join t
阅读全文
摘要:什么是触发器? 触发器是一种特殊的存储过程,它在insert、delete、update时触发执行,它比数据库本身标准的功能有更精细和复杂的数据控制能力。 触发器的作用: 在写入表前可强制检验或转换数据 触发器发生错误时,异动的结果会被撤销 可依照特定情况,替换异动的指令(instead of) 在
阅读全文
摘要:QUIC(Quick UDP Internet Connections),是一种完全基于UDP的协议,目前HTTP/3是建立在该协议上的。QUIC不仅常丹了传输层协议的职责,还具备了TLS的安全性相关的能力。 QUIC具有以下特点: 基于UDP的传输层协议:使用UDP端口号来识别指定机器上的特定服务
阅读全文
摘要:mysql 可以运行在不同的 SQL Mode模式下,不同的SQL Mode定义了不同的SQL语法,有不同的数据校验规则。 SQL Mode的作用: 不同的mode可以完成不同严格程度的数据校验,保障数据的准确性。 改变mode能够更方便的进行数据在不同库中的迁移。 SQL Mode的种类: ONL
阅读全文
摘要:为了避免内存中数据丢失,redis提供了对持久化的支持,redis提供了RDB和AOF两种不同的数据持久化方式。 RDB:快照存储持久化方式,将Redis某一时刻的内存数据保存到硬盘的文件中,默认文件名为dump.rdb。当redis服务器启动时会重新加载dump.rdb文件的数据到内存中。 过程为
阅读全文
摘要:A、B两列均存在索引,但 select * from T where A=B;不会走索引,因为全表扫描更快。 存在null值,索引列可空,则不会给其建索引,索引值少于表count值,执行计划会去扫全表,比如 select * from T where id is not null; 反查询,索引定位
阅读全文
摘要:什么是服务网关? 服务网关=路由转发+过滤器 路由转发:接收一切外界请求,转发到后端服务上去。 过滤器:在服务网关中完成一系列的横切功能,比如权限校验、限流、监控。 服务网关的作用 将权限校验逻辑写在网关过滤器中,后端服务只需要关注业务实现,不需要关注权限校验。 如果需要权限逻辑,只需要修改网关校验
阅读全文
摘要:null可以通过一个具体值表示,这样有利于代码可读性和维护性,且能增强业务数据的规范性。 null值更新为非null,无法原地更新,容易发生索引分裂,从而影响性能。 not in、!=等条件查询在有null值的情况下返回为空结果,查询易出错。 null列需要更多的存储空间,需要一个额外的字节为nul
阅读全文
摘要:Mylsam Mylsam的索引与行记录是分开存储的,都是非聚集索引。 其主键索引与普通索引没有本质区别:①有个连续聚集的区域单独存储行记录;②主键索引的叶子结点,存储主键与对应行记录的指针;③普通索引的叶子结点,存储索引列与对应行记录的指针。 Mylsam表可以没有主键 主键索引与普通索引都是两棵
阅读全文
摘要:mysql 有三种类型的锁 表锁:开销小,加锁快,不会出现死锁 指对一整张表加锁,一般是DDL处理时使用(比如Alter)。 由Mysql Server实现,使用的是一次性锁技术,会话开始时使用lock命令将后需要用到的表加锁,后面通过unlock tables释放锁。 行锁:开销大,加锁慢,会出现
阅读全文