![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 88
老程不秃
这个作者很懒,什么都没留下…
展开
-
MySQL 进阶之王,MySql 性能实战源码 + 笔记 + 项目实战
随着互联网时代的兴起,MySQL 在数据库领域日益显现出举足轻重的地位,它不断扩大的用户群体就是很好的证明。在这样的背景下,需要越来越多的人在知识资源方面为之付出,将自己对 MySQL 数据库的学习过程、运维经验、个人理解等记录下来,为行业中的后来者燃起一盏明灯, 让他们少走一些弯路。由于互联网产品用户量大、高并发请求场景多,因此对 MySQL 的性能、可用性、扩展性都提出了很高的要求。使用 MySQL 解决大量数据以及高并发请求已经是程序员的必备技能,也是衡量一个程序员能力和薪资的标准之一。原创 2023-07-15 16:43:40 · 481 阅读 · 0 评论 -
【无标题】
1.分布式锁分布式锁超时问题可重入性2.延时队列异步消息队列?队列空了怎么办?队列延迟空闲连接自动断开锁冲突处理延时队列的实现进一步优化3.位图基本使用统计和查找魔术指令 bitfield使用方法pfadd 这个 pf 是什么意思?pfmerge 适合什么场合用?注意事项HyperLogLog 实现原理pf 的内存占用为什么是 12k?5.布隆过滤器布隆过滤器是什么?Redis 中的布隆过滤器布隆过滤器的基本使用注意事项布隆过滤器的原理空间占用估计。原创 2023-07-12 16:21:02 · 55 阅读 · 0 评论 -
MySQL进阶之道,MySql性能实战源码+笔记+项目实战
随着互联网时代的兴起,MySQL在数据库领域日益显现出举足轻重的地位,它不断扩大的用户群体就是很好的证明。在这样的背景下,需要越来越多的人在知识资源方面为之付出,将自己对MySQL数据库的学习过程、运维经验、个人理解等记录下来,为行业中的后来者燃起一盏明灯, 让他们少走一些弯路。由于互联网产品用户量大、高并发请求场景多,因此对MySQL的性能、可用性、扩展性都提出了很高的要求。使用MySQL解决大量数据以及高并发请求已经是程序员的必备技能,也是衡量一个程序员能力和薪资的标准之一。原创 2023-04-20 14:17:44 · 141 阅读 · 0 评论 -
直接被GitHub置顶:Redis核心实践全彩手册,基础应用-源码yyds
面过大厂资深技术岗的人都知道,Redis 基本上是必考点。比如: · Redis 常见的性能问题有哪些?该如何解决?——性能相关 · Redis 缓存的雪崩、击穿、穿透到底是什么意思?如何应对?——缓存相关 · Redis 主从集群常见的问题有哪些?该如何解决?——可用性相关 · 现有 Redis 实例,保存数量 6GB,未来预计会扩展到 32GB,请你提供一个解决方案,并分析它优点和潜在问题?——可扩展性相关 毕竟 10 家公司,起码有 8 家的架构体系里有Redi原创 2022-01-15 22:13:24 · 1065 阅读 · 0 评论 -
如何创建高性能的索引
如何创建高性能的索引EXPLAIN 类型分析explain 指令可以帮助我们查看查询优化器 处理 执行计划 的一些细节信息语法: explain + 执行计划假如我们有这样的两张表(分类表和商品表),我们将结合explain 字段进行说明:#分类CREATE TABLE category (id int primary key auto_increment,name varchar(50) not null,c_desc varchar(200),create_time原创 2022-01-08 20:43:18 · 2811 阅读 · 3 评论 -
Why?Mybatis的一级和二级缓存都不建议使用?
缓存是在哪起作用的?个人认为mybatis一级缓存和二级缓存并不是一个很好的设计,工作中我基本上也不会使用一级缓存和二级缓存,因为一旦使用不当会造成很多问题,所以我们今天就来看看到底会有什么问题?上一节我们介绍了Executor会调用StatementHandler执行sql,起一个承上启下的作用。Executor的设计是一个典型的装饰者模式,SimpleExecutor,ReuseExecutor是具体实现类,而CachingExecutor是装饰器类。可以看到具体组件实现类有一个原创 2022-01-06 01:36:34 · 187 阅读 · 0 评论 -
收好这份武林秘籍,让你分库分表再无烦恼
互联网发展至今,各个公司企业的数据量都大幅增长,分库分表越来越多的被我们用到,那么我们应该如何针对我们自己的业务场景,对数据进行合理的划分,用最小的代价解决掉性能瓶颈。1 分库分表的介绍1.1 什么是分库分表?分库分表其实是两个词分库: 将一个库里的数据,分开放在多个库里分表: 将一张表里的数据,分开放在多张表里1.2 为什么要分库分表?至于为什么要分库分表?肯定是单个库或者是单个表不足以满足我们的业务需要,不论是从性能角度出发,还是从数据库存储能力的角度出发,每一种类型的数.原创 2021-12-17 16:05:15 · 1147 阅读 · 0 评论 -
用 Go + Redis 实现分布式锁
为什么需要分布式锁 用户下单 锁住 uid,防止重复下单。 库存扣减 锁住库存,防止超卖。 余额扣减 锁住账户,防止并发操作。分布式系统中共享同一个资源时往往需要分布式锁来保证变更资源一致性。分布式锁需要具备特性 排他性 锁的基本特性,并且只能被第一个持有者持有。 防死锁 高并发场景下临界资源一旦发生死锁非常难以排查,通常可以通过设置超时时间到期自动释放锁来规避。 可重入 锁持有者支持可重入,防止锁持有者再次重入时锁被超时释放。 高性能高原创 2021-12-15 22:15:05 · 198 阅读 · 0 评论 -
MySQL模糊查询再也不用like+%了
前言我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务网站需要根据用户的查询条件,在可能需要在商品的详细介绍中进行查找,这些都不是B+树索引能很好完成的工作。通过数值比较,范围过滤等就可以完成绝大多数我们需要的查询了。但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较,全文索引就是为这种场景设计的。全文索引(Full..原创 2021-12-14 22:40:11 · 304 阅读 · 0 评论 -
MySQL 索引优化实践
案例创建表的 DDL# DDL 语句CREATE TABLE `employees` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `name` VARCHAR(24) NOT NULL DEFAULT '' COMMENT '姓名' COLLATE 'utf8_general_ci', `age` INT(10) NOT NULL DEFAULT '0' COMMENT '年龄', `position` VARCHAR(20) NOT NULL ..原创 2021-12-12 15:42:13 · 186 阅读 · 0 评论 -
性能优化反思:减少DB查询,合理使用成员变量。
高内聚,低耦合是非常深入人心的设计思想,在做到高内聚低耦合的同时,我们也要考虑到值传递的问题:要避免在抽取函数,封装代码时不合理的值传递,避免在多个函数内部重复查询相同的DB。举个栗子需求描述 我们的项目是交友类APP,有划卡片喜欢、不喜欢、超级喜欢的动作,也有赠送礼物、邀请约会等动作 上述动作有各种判断,比如每天有喜欢的上限,又区分是不是会员;赠送礼物时又要判断是否开通了会员,扣费的话要不要使用会员价;邀请约会的时候要判断是不是好友等等;各种看起来平平无奇的场景融合在一起就让代原创 2021-12-08 20:29:02 · 718 阅读 · 0 评论 -
MySQL编码探究
前言时位于 2002 年,MySQL4.1 版本开始支持 UTF-8 编码,由于当时采用RFC 2279规定该编码使用 1~6 字节存储单个字符,MySQL 开发者在同年 9月对源码进行了修改,将 UTF-8 编码从最大 6字节变更为 3字节,也就有了现在的UTF8MB3。 我们都知道,UTF8MB3是无法存储 SMP(Supplementary Multi-lingual Plane)字符的,而 MySQL 后来基于RFC 3629 标准新增了UTF8MB4。这时候我们只需要将表(Table)和字段(原创 2021-12-07 13:34:01 · 923 阅读 · 0 评论 -
MySql单表过大水平分表实践从技术选型到方案代码落地
一、背景先交代一下目标表的情况,后台管理系统,表存储的是各个公司的客户线索数据,使用场景是在ORM里面给各个公司提供数据后台系统,各个公司可以通过自己的账号登录查看自己公司的数据。目前,单表数据量已经达到877W+,且增长速度在每月90W-120W的区间,半年之后数据量可能会超过千万,后台页面对这行表的分页筛选查询,统计效率可能会越来越低,因此需要对这张表进行拆分,表里有很多字段,为了简化和脱敏我就不全部写出来了,只列一下主要字段:CREATE TABLE `clue_notify` (原创 2021-12-07 13:12:48 · 1086 阅读 · 0 评论 -
谈一谈sql优化的15个小技巧
前言sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。如果某天你负责的某个线上接口,出现了性能问题,需要做优化。那么你首先想到的很有可能是优化sql语句,因为它的改造成本相对于代码来说也要小得多。那么,如何优化sql语句呢?这篇文章从15个方面,分享了sql优化的一些小技巧,希望对你有所帮助。最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了。BAT大佬写的刷题笔记,让我offer拿到手软原创 2021-11-27 20:08:57 · 198 阅读 · 0 评论 -
MySQL中常用函数的日常总结
前言 很多朋友都学习过数据库相关的操作,SQL作为访问和处理数据库的标准计算机语言,也有很多的函数方便我们调用。近期针对SQL中的函数进行了一次总结,特分享给大家。SQL函数 SQL函数主要分为两大类,一类是基于计算的函数Aggregate函数,另一类是基于数据处理的Scalar函数。 其中基于计算的Aggregate函数主要是针对数据库中值得计算主要包含:平均值函数、最大值最小值函数、计算总和、计算总行数等一类函数。基于Scalar函数的函数主要是针对数据进行处理,例如:转大写、转小原创 2021-11-27 20:04:44 · 289 阅读 · 0 评论 -
数据库时间慢了14个小时,Mybatis说,这个锅我不背
同事反馈一个问题:Mybatis插入数据库的时间是昨天的,是不是因为生成Mybatis逆向工程生成的代码有问题?大家都知道,对于这类Bug本人是很感兴趣的。直觉告诉我,应该不是Mybatis的Bug,很可能是时区的问题。很好,今天又可以带大家一起来排查Bug了,看看从这次的Bug排查中你能Get什么技能。这次研究的问题有点深奥,但结论很重要。Let's go!问题猜想同事反馈问题的时候,带了自己的猜想:是不是数据库字段设置为datetime导致?是不是Mybatis逆向工程生成的代码中类原创 2021-11-27 19:57:30 · 297 阅读 · 0 评论