数据结构与算法

MySQL悲观锁与乐观锁的实现方案

我们知道Mysql并发事务会引起更新丢失问题,解决办法是锁,所以本文将对锁(乐观锁、悲观锁)进行分析 悲观锁和乐观锁是用来解决并发问题的两种思想,在不同的平台有着各自的实现。例如在Java中,synchronized就可以认为是悲观锁的实现(不严谨,有锁升级的过程,升级到重量级锁才算),Atomic***原子类可以认为是乐观锁的实现。 悲观锁 具有强烈的独占和排他特性,在整个处理过程中将数据处于锁

MySQL慢查询八戒(寻常之见)

1. 避免使用子查询 由于子查询会产生大量的临时表也没有索引,所以会消耗过多的CPU和IO资源,产生大量的慢查询 【子查询性能差的原因】 我觉得:可以把子查询转化为关联查询进行优化 网友:???(你有没有很多问号) 2. in 查询的避免(我经理,所以这痛楚…我懂,k+) in 的值不要超过500个(且会利用索引) 3. 尽量避免使用外键约束 会降低性能,因为:外键会影响父表和子表的

自定义prometheus exporter实现监控阿里云RDS

prometheus-icon.png 背景 1、Prometheus官网提供的mysql exporter 对于mysql实例只能一个进程监控一个实例,数据库实例很多的情况,不方便管理 2、内部有定制化监控需求,RDS 默认无法实现,比如对数据库增长的监控 3、默认 Prometheus官网提供的mysql exporter 采集mysql几乎所有的指标,但是实际用到的却不多。浪费存

MYSQL调优

MYSQL调优 性能监控 不同的存储引擎存储机制是不同的 用户和数据库服务器连接需要用到连接器 数据分析有一个分析器:把对应的sql语句进行切分,通过关键字切分如:from ,where... 分析器下面有个优化器: RBO:基于规则优化 CBO:基于成本优化 企业开发不允许使用select * from xx,归根究底是IO问题,要降低成本就不要这样方式查询这样的方式查询会占用很高的磁盘,单只

深入解析yolov5,为什么算法都是基于yolov5做改进的?(一)

YOLOv5简介YOLOv5是一种单阶段目标检测算法,它在YOLOv4的基础上引入了多项改进,显著提升了检测的速度和精度。YOLOv5的设计哲学是简洁高效,它有四个版本:YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,分别对应不同的模型大小和性能。 YOLOv5的四个版本(s,m,l,x&#xff

面试官,不要再问我三次握手和四次挥手

三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题。很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了。 见过比较典型的面试场景是这样的:        面试官:请介绍下三次握手 求职者:第一次握手就是客户端给服务器端发送一个报文,第二次就是服务器收到报文之后,会应答一个报文给客户端,第三次握手就是客户端收到报文后再给服务器发送一个报文

Clickhouse笔记(2022)

一.简介 什么是Clickhouse? Clickhouse是俄罗斯yandex公司开源的用于OLAP的列式数据库管理系统,它是用C++写的,支持SQL实时查询和大型数据库管理系统一般用于后端数仓。 Clickhouse是真正的列式存储,相比较于HBase来说,HBase的列簇可以说是伪列式存储。Clickhouse存储一个表数据的时候,就是以一张表为一个目录,一个列为一个文件进行存储的。 它不依

《并查集的黑科技:路径压缩×按秩合并×带权扩展|算法核心原理与工程级实践指南》

📃个人主页:island1314⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞 生活总是不会一帆风顺,前进的道路也不会永远一马平川,如何面对挫折影响人生走向 – 《人民日报》 🔥 目录