自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 收藏
  • 关注

原创 程序员的护城河-并发编程

世间不如意十之八九。如果没办法一次到位,就分阶段实现吧。学习JUC是完善整个后端体系必不可少的一环,因为很多Java后端的中间件或者框架其本身内部大量的涉及到了JUC的部分,并且也可以在阅读JUC源码的过程中明白思想,其实思想都是互通的,例如ReentrantLock的原理本质上和Redisson 的原理是类似的,那么就可以迅速过度到分布式锁的使用中。

2023-11-20 17:10:00 919 6

原创 后端接口性能优化分析

事实上,当决定进行这个后端接口分析专栏部分的时候,我是低估了工作量的,因为以我当时的认知,并没有这么多的内容,随着不断地发现新的知识点,不断地调研,不断地总结,最终,一个适合我目前经验的后端接口优化篇幅就完成了。总的来说,当完成了这部分的时候,我总体上对知识有了一个更加全面的了解,将很多的知识融汇贯通了起来,形成了一个体系,这也是我最大的收获!实际问题的优化,是根据真实发生的问题而做的优化,这部分内容主要是参考优秀的技术博客。4.空间换时间思想:恰当使用缓存。6.池化思想:预分配与循环使用。

2023-11-14 16:43:23 2825 5

原创 JVM系列-9.性能调优

1、通过arthas的trace命令,首先找到性能较差的具体方法,如果访问量比较大,建议设置最小的耗时,精确的找到耗时比较高的调用。2、通过watch命令,查看此调用的参数和返回值,重点是参数,这样就可以在开发环境或者测试环境模拟类似的现象,通过debug找到具体的问题根源。3、

2024-01-27 11:09:46 1348

原创 JVM系列-8.GC调优

1、压力比较大的服务中,尽量不要存放大量的缓存或者定时任务,会影响到服务的内存使用。2、内存分析发现有大量线程创建时,可以使用导出线程栈来查看线程的运行情况。3、如果请求确实创建了大量的内存超过了内存上限,只能考虑减少请求时创建的对象,或者使用更大的内存。4、推荐使用g1垃圾回收器,并且使用较新的JDK可以获得更好的性能。

2024-01-26 20:02:01 1340

原创 JVM系列-7内存调优

也可以基于线程入手,点开线程的支配树,里面有很多的局部变量,我们得精准的知道,这个线程执行的方法是哪一个。但是由于用户的并发请求量有可能很大,同时处理数据的时间很长,导致大量的数据存在于内存中,最终超过了内存的上限,导致内存溢出。Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。2、如果没有元素,直接放入。

2024-01-26 16:36:24 1482

原创 JVM系列-6.java垃圾回收

终结器引用指的是在对象需要被回收时,终结器引用会关联对象并放置在Finalizer类中的引用队列中,在稍后由一条由FinalizerThread线程从队列中获取对象,然后执行对象的finalize方法,在对象第二次被回收时,该对象才真正的被回收。现在这段代码,如果不打开注释的话,可以触发gc上的回收,因为我们使用的是while,当我们的循环进入到下一轮的时候,上一轮创建的三个对象就已经没有人在使用了,那么此时java虚拟机就会把这三个对象回收掉。不同垃圾回收算法,对堆内存的使用方式是不同的。

2024-01-25 11:30:36 1200

原创 JVM系列-5.java内存区域

当前类的字节码指令引用了其他类的属性或者方法时,需要将符号引用(编号)转换成对应的运行时常量池中的内存地址。方法出口指的是方法在正确或者异常结束时,当前栈帧会被弹出,同时程序计数器应该指向上一个栈帧中的下一条指令的地址。最终是不想相等的,因为c是指向了字符串常量池中的"12",而d是指向了堆内存中的"12"。Java虚拟机栈随着线程的创建而创建,而回收则会在线程的销毁时进行。used指的是当前已使用的堆内存,total是java虚拟机已经分配的可用堆内存,max是java虚拟机可以分配的最大堆内存。

2024-01-23 18:58:29 1089

原创 JVM系列-4.类加载器

一个Tomcat程序中是可以运行多个Web应用的,如果这两个应用中出现了相同限定名的类,比如Servlet类,Tomcat要保证这两个类都能加载并且它们应该是不同的类。如果不打破双亲委派机制,当应用类加载器加载Web应用1中的MyServlet之后,Web应用2中相同限定名的MyServlet类就无法被加载了。Tomcat使用了自定义类加载器来实现应用之间类的隔离。每一个应用会有一个独立的类加载器加载对应的类。先来分析ClassLoader的原理,ClassLoader中包含了4个核心方法。

2024-01-22 19:27:07 1076

原创 JVM系列-3.类的生命周期

类的卸载会在垃圾回收篇讲解如果比较细致的区分,会分成七个阶段。

2024-01-21 21:32:32 1133

原创 JVM系列-2.字节码文件详解

小李的团队昨天对系统进行了升级修复了某个bug,但是升级完之后发现bug还是存在,小李怀疑是因为没有把最新的字节码文件部署到服务器上,请使用阿里的arthas去确认升级完的字节码文件是不是最新的。Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,大大提升线上问题排查效率。文件是无法通过文件扩展名来确定文件类型的,文件扩展名可以随意修改,不影响文件的内容。jad 类的全限定名: 反编译已加载类的源码。

2024-01-21 17:44:06 1235

原创 JVM系列-1.初识JVM

JVM 全称是 Java Virtual Machine,中文译名 Java虚拟机。JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。Java虚拟机主要是将字节码转换成机器码最后将机器码交给计算机去运行从上面就可以看到JVM的一个功能,解释和运行。

2024-01-21 17:38:31 648

原创 设计一个抽奖系统

如果设计一个抽奖系统,如何设计一个高并发的秒杀系统?这类项目在网上其实很多,但是实际的工作流到底是什么呢?难不成只有简单的数据库操作和逻辑判断吗?实际的工作流都有哪些呢?站在整体上来看都需要哪些呢?下面就以一个项目来讲解下都有什么?其实可以看到,该部分其实是DDD结构中的一个单独的领域,主要是用来走抽奖逻辑。那么实际上仅仅对于抽奖这件事来说,其实就是抽奖策略的设计。通过策略包装里面的doDraw方法选择合适的策略进行抽奖。那么核心流就是策略都有哪些?实际上关于这方面的策略主要有 总体策略 和 单项策略。

2024-01-16 23:15:15 1496 3

原创 项目压测优化实践思路

什么是压测?压力测试(英语:Stress testing)是针对特定系统或是组件,为要确认其稳定性而特意进行的严格测试。会让系统在超过正常使用条件下运作,然后再确认其结果。压力测试是对系统不断施加压力,来预估系统服务能力的一种测试。为什么对系统压测呢?有没有必要。压不压测要看场景!一般而言,只有在系统基础功能测试验证完成、系统趋于稳定的情况下,才会进行压力测试。目的是什么?当负载逐渐增加时,观察系统各项性能指标的变化情况是否有异常发现系统的性能短板,进行针对性的性能优化判断系统在。

2024-01-16 20:42:29 1750 9

原创 设计一个简单的规则引擎

上述这段代码也是真正的推理引擎的代码,来解读一下,首先获取到这课规则树,然后遍历这颗规则树,遍历的时候根据对应节点的规则key,从规则管理器中找到对应的规则,然后执行规则,获取到下一个即将要执行的规则,然后在while循环中遍历,并且将每一次找到的规则打印即可。本质上就是要完成这样的一个规则引擎,首先通过性别进行规则判断,然后是通过年龄进行规则判断,这样一个简单的规则殷勤的雏形就设计好了。所以需要设计一个动态的规则引擎,这样当有新的规则来的时候,我们不需要很大的变动,就可以完成规则的加入。

2024-01-14 11:19:26 1155 9

原创 设计一个简易版的数据库路由

相信能看这篇文章的基本上都了解HashMap的,算得上是必须要熟悉的基础知识了,初始就16个位置的数组,当我们往HashMap中存储的时候,其为了尽可能的避免HashMap碰撞,使其分布的更加均匀,做了很多的工作,如果产生了碰撞,链表和红黑树的优化做的也很好,但是这个终归是备用方案,实际上其HashMap的Hash函数设计的非常的好,其本质上是Hash函数的前十六位与后十六位异或,然后在与(size-1)与。MyBatis是一个成熟的框架,篇幅限制,这里抓大放小,来看看它的主要工作流程。

2024-01-12 22:03:38 1910 15

原创 Spring原理-8.通知调用

a. 因为 advisor 有多个, 且一个套一个调用, 因此需要一个调用链对象, 即 MethodInvocation。统一转换为环绕通知, 体现的是设计模式中的适配器模式(将一种接口转换成另一种接口,供调用 )动态的通知调用有一处和静态的不一样有参数绑定的通知调用时还需要切点,对参数进行匹配及绑定。其余的和前面介绍的都一样,只是又额外添加了after 和 around的改写。前面都是介绍静态的通知调用,那么下面来说说动态通知调用。本质上就是通过递归的方式实现了责任链的调用。那么调用链是怎么实现的呢?

2024-01-11 17:19:39 823 2

原创 Spring原理-7.切点与切面

底层切点实现是如何匹配的: 调用了 aspectj 的匹配方法如果aspectj不能满足的话,那么就使用MethodMatcher 接口, 用来执行方法的匹配,通过这个我们完全可以自行的去定义匹配规则。代理的创建时间有两个一个是无循环依赖,那么就是 创建 -> 依赖注入 -> 初始化 这三个流程中的初始化之后创建代理。如果有循环依赖,那么就是 创建 -> 依赖注入 -> 初始化 这三个流程中 依赖注入之前创建代理,并且将其存入到二级缓存当中。

2024-01-11 11:26:32 1029

原创 Mysql系列-1.Mysql基本使用

在这一章节,我们主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据库中数据的正确、有效性和完整性。约束描述关键字非空约束限制该字段的数据不能为nullNOT NULL唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE主键约束主键是一行数据的唯一标识,要求非空且唯一PRIMARYKEY默认约束保存数据时,如果未指定该字段的值,则采用默认值DEFAULT。

2024-01-09 10:17:46 1174 10

原创 Redis系列-15.Redis的IO多路复用原理解析

模拟一个tcp服务器处理30个客户socket,一个监考老师监考多个学生,谁举手就应答谁。假设你是一个监考老师,让30个学生解答一道竞赛考题,然后负责验收学生答卷,你有下面几个选择:第一种选择:按顺序逐个验收,先验收A,然后是B,之后是C、D。。。这中间如果有一个学生卡住,全班都会被耽误,你用循环挨个处理socket,根本不具有并发能力。第二种选择:你创建30个分身线程,每个分身线程检查一个学生的答案是否正确。这种类似于为每一个用户创建一个进程或者线程处理连接。

2024-01-07 11:19:04 2270 32

原创 消息队列之堆积问题分析

根据问题描述,历史消息已经被存储到4个固定的分区中,只有新增的消息才会到新的分区中,所以我们的重点是处理已有的分区,那么回到扩容问题,因为现有分区已经和消费者组里面的消费者一对一了,所以哪怕我们增加分区,或者消费者组里面的消费者,会触发消费再均衡,但是因为突发情况导致消费者消费能力不够,所以哪怕扩容,也不会很快的改善这个堆积问题。该问题其实需要和下游进行对其,因为现在急需解决消息堆积的问题,如果你贸然使用了多线程来处理,但是没有和下游处理端进行对其,那么他们可能也会面临突增的流量,可能会造成一定的后果。

2024-01-06 10:50:40 705 2

原创 Redis系列-14.Redis经典五大类型源码及底层实现(二)

hash-max-listpack-entries:使用压缩列表保存时哈希集合中的最大元素个数。hash-max-listpack-value:使用压缩列表保存时哈希集合中单个元素的最大长度。Hash类型键的字段个数 小于 hash-max-listpack-entries且每个字段名和字段值的长度小于hash-max-listpack-value 时,Redis才会使用OBJ_ENCODING_LISTPACK来存储该键,前述条件任意一个不满足则会转换为 OBJ_ENCODING_HT的编码方式。

2023-12-30 21:40:43 1138

原创 Redis系列-13.Redis经典五大类型源码及底层实现(一)

RedisObjectt内部对应的3大物理编码ziplist为了节省内存,采用了紧凑的连续存储。ziplist是一个双向链表,可以在时间复杂度为 O(1) 下从头部、尾部进行 pop 或 push。新增或更新元素可能会出现连锁更新现象(致命缺点导致被listpack替换)。不能保存过多的元素,否则查询效率就会降低,数量小和内容小的情况下可以使用。

2023-12-30 17:52:31 1850

原创 Redis系列-16.腾讯经典面试题-如何做一个迷你版的微信抢红包呢?

每抢走一个红包就减少一个(类似减库存),那这个就需要保证库存的-----------------------原子性,不加锁实现。给你100块,分成10个小红包(金额有可能小概率相同,有2个红包都是2.58),总计有10个红包,抢一个少一个,总数显示(10/6)直到完,需要记录那些人抢到了红包,重复抢作弊不可以。2 一个总的大红包,会有可能拆分成多个小红包,总金额= 分金额1+分金额2+分金额3…3 每个人只能抢一次,你需要有记录,比如100块钱,被拆分成10个红包发出去,假设有10个人,红包总额100元。

2023-12-29 20:57:35 1485 1

原创 初识linux

1.根据网上教程配置centos虚拟机2.购买云服务器VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器。VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM 与 VI 编辑器完全兼容。

2023-12-29 19:06:56 1230

原创 Redis系列-12.Redis的缓存过期淘汰策略

定期删除策略的难点是确定删除操作执行的时长和频率:如果删除操作执行得太频繁或者执行的时间太长,定期删除策略就会退化成立即删除策略,以至于将CPU时间过多地消耗在删除过期键上面。因此,如果采用定期删除策略的话,服务器必须根据情况,合理地设置删除操作的。因为删除操作会占用cpu的时间,如果刚好碰上了cpu很忙的时候,比如正在做交集或排序等计算的时候,就会给cpu造成额外的压力,页面置换算法,淘汰最长时间未被使用的页面,看页面最后一次被使用到发生调度的时间长短,首先淘汰最长时间未被使用的页面。

2023-12-28 08:51:46 1410

原创 Redis系列-11.RedLock算法和底层源码分析

线程 1 首先获取锁成功,将键值对写入 redis 的 master 节点,在 redis 将该键值对同步到 slave 节点之前,master 发生了故障;redis 触发故障转移,其中一个 slave 升级为新的 master,此时新上位的master并不包含线程1写入的键值对,因此线程 2 尝试获取锁也可以成功拿到锁,此时相当于有两个线程获取到了锁,可能会导致各种预期之外的情况发生,例如最常见的脏数据。

2023-12-27 20:56:49 1234

原创 Redis系列-10.Redis分布式锁

setnx,只能解决有无的问题,够用但是不完美hset,不但解决有无,还解决可重入synchronized单机版可以,但是上分布式死翘翘nginx分布式微服务单机锁不行如果取消宕机所,可以考虑上redis分布式锁setnx但是只是加了锁,没有释放锁,出现异常的话,可能无法释放锁,必须要在代码层面finally释放锁宕机了,部署了微服务代码层面根本没有走到finally这块,没办法保证解锁,这个key没有被删除,需要有lockkey的过期时间设定。

2023-12-26 14:56:10 914

原创 Redis系列-9.Redis布隆过滤器BloomFilter

由一个初值都为零的bit数组和多个哈希函数构成,用来快速判断集合中是否存在某个元素目的减少内存占用方式不保存数据信息,只是在内存中做一个是否存在的标记flag本质上就是判断具体数据是否存在于一个大的集合中布隆过滤器(英语:Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制数组(00000000)+一系列随机hash算法映射函数,主要用于判断一个元素是否在集合中。

2023-12-25 12:54:19 1071

原创 Redis系列-8.Redis案例实战之Bitmap、Hyperloglog、GEO

Unique Visitor 独立访客,一般理解为客户单ip,一般需要做去重考虑。Page View 页面浏览量,不需要考虑去重Daily Active User 日活跃用户量:登陆或者使用了某个产品的用户数(去掉重复登陆的用户)常用于反应网站、互联网应用或者网络游戏的运营情况Monthly Active User:月活跃用户量。

2023-12-25 12:51:42 1165

原创 Redis系列-7.Redis缓存常见问题之预热、雪崩、击穿、穿透

1 比较懒,什么都不做,之前对mysql做了数据新增,利用redis的回写机制,让它逐步实现100条新增记录的同步,最好提前晚上部署发布版本的时候,由自己人提前做一次,让redis同步了,不要把这个问题留给客户。请求去查询一条记录,先插redis无,后查mysql无,都查询不到该条记录,但是请求每次都会打到数据库上面去,导致后台数据库压力暴增,这种现象我们成为缓存穿透,这个redis变成了一个摆设。简单说就是,本来无一物,两库都没有,机不再redis缓存库,也不再mysql,数据库存在被多次暴击风险。

2023-12-25 12:44:33 1175

原创 Redis系列-4.Redis持久化

需要注意的是,RDB 是默认持久化方式,但 Redis 允许 RDB 与 AOF 两种持久化技术同时开启,此时系统会使用 AOF 方式做持久化,即 AOF 持久化技术的优先级要更高。在持久化时,先将 SOF、rdb_version 及内存数据库中的数据快照这三者的二进制数据拼接起来,形成一个二进制数(假设称为数 a),然后再使用这个 a 除以校验和 check_sum,此时可获取到一个余数 b,然后再将这个 b 拼接到 a 的后面,形成 databases。不同的持久化方式,其数据的丢失率也是不同的。

2023-12-25 09:58:48 877

原创 Redis系列-6.Redis缓存双写一致性问题

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理、分布式技术原理、数据库技术🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦🍂博主正在努力完成2023计划中:源码溯源,一探究竟📝联系方式:nhs19990716,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬👀文章目录缓存双写一致性问题经典面试题引入缓存双写一致性的理解如何写数据库和缓存一致性的几种更新策略目的可以停机的情况四种更新策略先

2023-12-25 09:52:14 960

原创 Redis系列-5.Redis大Key问题

给出每种数据结构Top 1 bigkey,同时给出每种数据类型的键值个数+平均大小。

2023-12-22 14:44:45 1054

原创 Redis系列-1.Redis浅谈

模拟一个tcp服务器处理30个客户socket。第一种选择(轮询):按顺序逐个验收,先验收A,然后是B,之后是C、D。。。这中间如果有一个学生卡住,全班都会被耽误,你用循环挨个处理socket,根本不具有并发能力。第二种选择(来一个new一个,1对1服务):你创建30个分身线程,每个分身线程检查一个学生的答案是否正确。这种类似于为每一个用户创建一个进程或者线程处理连接。第三种选择(响应式处理,1对多服务),你站在讲台上等,谁解答完谁举手。

2023-12-22 09:56:22 1295

原创 Mysql系列-3.Mysql的SQL优化和锁

在之前的测试中,我们发现,如果数据量很大,在执行count操作时,是非常耗时的。MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高;但是如果是带条件的count,MyISAM也慢。InnoDB 引擎就麻烦了,它执行 count(*) 的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。如果说要大幅度提升。

2023-12-21 22:05:39 1026

原创 Mysql系列-2.Mysql索引优化

索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。索引结构描述B+Tree索引最常见的索引类型,大部分引擎都支持 B+ 树索引Hash索引底层数据结构是用哈希表实现的, 只有精确匹配索引列的查询才有效, 不支持范围查询。

2023-12-21 16:06:07 1048

原创 Redis系列-2.Redis数据结构及使用

BitMap 是 Redis 2.2.0 版本中引入的一种新的数据类型。该数据类型本质上就是一个仅包含 0 和 1 的二进制字符串。而其所有相关命令都是对这个字符串二进制位的操作。用于描述该字符串的属性有三个:key、offset、bitValue。key:BitMap 是 Redis 的 key-value 中的一种 Value 的数据类型,所以该 Value 一定有其对应的 key。offset:每个 BitMap 数据都是一个字符串,字符串中的每个字符都有其对应的索引,该索引从 0 开始计数。

2023-12-20 19:26:32 834

原创 真实并发编程问题-1.钉钉面试题

学完了并发编程,是否真的能够灵活应用其思想呢?实践才是检验真理的唯一标准,好记性不如烂笔头。下面就让我以我一个朋友社招面试钉钉的一道面试题来讲解下并发编程的实际应用吧。其实这个问题不仅仅想说一些解法的小细节,还是想说,其实这个面试题,更像是真实业务模型中抽取出来的,很偏向于业务开发,当我们学习完并发编程的时候,能够学习这样真实的业务模型,并能针对不同的场景进行分析,就能够触类旁通,更好的将并发编程的解决思路应用于实际问题的解决中去。

2023-12-19 19:42:13 986

原创 Redis系列-3.Redis底层数据结构原理

无论是 Redis 的 Key 还是 Value,其基础数据类型都是字符串。例如,Hash 型 Value 的field 与 value 的类型、List 型、Set 型、ZSet 型 Value 的元素的类型等都是字符串。虽然 Redis是使用标准 C 语言开发的,但并没有直接使用 C 语言中传统的字符串表示,而是自定义了一种字符串。这种字符串本身的结构比较简单,但功能却非常强大,称为简单动态字符串,Simple Dynamic String,简称 SDS。

2023-12-19 09:57:53 846

原创 Mysql系列-5.Mysql分库分表

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理、分布式技术原理、数据库技术🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦🍂博主正在努力完成2023计划中:源码溯源,一探究竟📝联系方式:nhs19990716,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬👀文章目录分库分表介绍问题分析拆分策略垂直拆分水平拆分实现技术MyCat概述介绍下载安装目录介绍概念介绍MyCat入门需求环境准备配

2023-12-17 17:57:38 944

Mysql 运维篇总结理解

MySQL是一种常见的开源关系型数据库管理系统,被广泛应用于Web应用程序的后端数据存储。MySQL运维包括数据库的安装、配置、备份和恢复、性能优化、监控等方面。在MySQL运维中,管理员需要负责确保数据库系统的稳定性、安全性和高可用性。他们需要定期备份数据库,并测试备份的可用性;监控数据库的性能,并进行优化以提高响应速度;管理用户权限和访问控制,以保障数据安全;同时,还需要及时应对数据库故障和性能问题,确保业务连续性。在日常工作中,MySQL运维人员需要熟练掌握MySQL的管理工具和命令,对数据库原理和架构有深入理解,以及具备故障排除和问题解决的能力。MySQL运维是保障数据库系统正常运行的关键环节,需要高效的团队协作和不断学习更新的技术知识。

2023-11-10

mysql进阶版笔记总结

MySQL是一种流行的开源关系型数据库管理系统。它提供了广泛的功能和强大的性能,已经成为许多应用程序的首选数据库。 MySQL具有许多进阶功能,包括: 复制和高可用性:MySQL支持主从复制,可以将数据从一个主服务器复制到多个从服务器,提高系统的可扩展性和冗余性。 分区和分片:MySQL支持数据分区和分片,可以将数据分散存储在多个物理设备上,提高查询效率和处理大规模数据的能力。 存储引擎:MySQL支持多种存储引擎,如InnoDB、MyISAM等,每个引擎都有不同的特性和适用场景,可以根据需求选择最合适的存储引擎。 事务和并发控制:MySQL支持ACID特性的事务,并提供了各种并发控制机制,如行级锁定、多版本并发控制(MVCC)等,确保数据的一致性和并发性。 安全性和权限管理:MySQL提供了强大的安全功能,包括用户认证、访问

2023-11-10

mysql基础篇学习总结

mysql学习,用于免费的开源

2023-07-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除