
mysql
文章平均质量分 74
阿杰同学
专注Java后端学习!内容涵盖Java面试指南、Spring Boot、Dubbo、Zookeeper、Redis、Nginx、消息队列、系统设计、架构、编程规范等内容。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分库分表之后,id 主键如何处理?
更重要的是,UUID 不具有有序性,会导致 B+ 树索引在写的时候有过多的随机写操作(连续的 ID 可以产生部分顺序写),还有,由于在写的时候不能产生有顺序的 append 操作,而需要进行 insert 操作,将会读取整个 B+ 树节点到内存,在插入这条记录后会将整个节点写回磁盘,这种操作在记录占用空间比较大的情况下,性能下降明显。这个 snowflake 算法相对来说还是比较靠谱的,所以你要真是搞分布式 id 生成,如果是高并发啥的,那么用这个应该性能比较好,一般每秒几万并发的场景,也足够你用了。原创 2025-01-02 19:56:40 · 702 阅读 · 0 评论 -
如何实现 MySQL 的读写分离?
高并发这个阶段,肯定是需要做读写分离的,啥意思?缓存击穿,就是说某个 key 非常热点,访问非常频繁,处于集中式高并发访问的情况,当这个 key 在失效的瞬间,大量的请求就击穿了缓存,直接请求数据库,就像是在一道屏障上凿开了一个洞。其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去。其实这是问到缓存必问的,因为缓存雪崩和穿透,是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题,所以面试官一定会问你。原创 2024-12-26 17:32:12 · 1216 阅读 · 0 评论 -
读写分离和分库分表详解
读写分离主要是为了将对数据库的读写操作分散到不同的数据库节点上。这样的话,就能够小幅提升写性能,大幅提升读性能。我简单画了一张图来帮助不太清楚读写分离的小伙伴理解。一般情况下,我们都会选择一主多从,也就是一台主数据库负责写,其他的从数据库负责读。主库和从库之间会进行数据同步,以保证从库中数据的准确性。这样的架构实现起来比较简单,并且也符合系统的写少读多的特点。关于如何避免主从延迟,我们这里介绍了两种方案。原创 2024-12-18 19:10:36 · 282 阅读 · 0 评论 -
SQL Server实现group_concat功能
group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )group_concat函数首先根据group by指定的列进行分组,将同一组的列显示出来,并且用分隔符分隔。group_concat([distinct] 字段名 [order by 排序字段 asc/desc] [separator ‘分隔符’])将group by产生的同一个分组中的值连接起来,返回一个字符串结果。原创 2023-05-08 17:39:34 · 2504 阅读 · 0 评论 -
SpringBoot整合Druid数据源
一、SpringBoot 整合DruidSprintBoot 默认使用的是 HikariDataSource数据源,这次整合一个第三方的数据源 Druid ,它是阿里开发的一款开源的数据源,被很多人认为是Java语言中最好的数据库连接池,因为 Druid 能够提供强大的一整套监控和扩展功能。默认情况下,sprintboot使用hikaridatasource数据源。这一次,集成了第三方数据源Druid。它是阿里巴巴开发的开源数据源,许多人认为它是Java语言中最好的数据库连接池,因为Druid可以提供一原创 2022-06-14 19:23:32 · 281 阅读 · 0 评论 -
MySQL 高性能优化规范建议
没有特殊要求(即 Innodb 无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用 Innodb 存储引擎(MySQL5.5 之前默认使用 Myisam,5.6 以后默认的为 Innodb)。Innodb 支持事务,支持行级锁,更好的恢复性,高并发下性能更好。兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集进行比较前需要进行转换会造成索引失效,如果数据库中有存储 emoji 表情的需要,字符集需要采用 utf8mb4 字符集。使用 comment 从句添加表和列的备注,原创 2022-06-11 10:55:47 · 343 阅读 · 1 评论 -
mysql中like % %模糊查询
1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。比如 SELECT * FROM [user] WHERE u_name LIKE ‘%三%’将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ AND u_name LIKE ‘%猫%’原创 2021-12-23 16:06:16 · 5018 阅读 · 0 评论 -
MySQL的四种事务隔离级别
什么是事务事务是应用程序中一系列逻辑相关的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性:一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消之前的所有操作。在mysql的执行引擎当中只有innoDB支持事务,可以通过 “show engines;”查看。一、事务的基本要素(ACID)1、原子性(Atomicity):事务开始后所有操作,要么全部做完原创 2021-12-13 17:48:24 · 1255 阅读 · 0 评论 -
java面经のMySQL索引的理解(主键索引和二级索引)
MySQL索引的理解(主键索引和二级索引) 索引是一种用于快速查询行的数据结构,就像一本书的目录就是一个索引,如果想在一本书中找到某个主题, 一般会先找到对应页码。在mysql中,存储引擎用类似的方法使用索引,先在索引中找到对应值 然后根据匹配的索引记录找到对应的行。我们首先了解一下索引的几种类型和索引的结构。索引类型B树大多数存储引擎都支持B树索引。b树通常意味着所有的值都是按顺序存储的,并且每一个叶子也到根的距离相同。B树索引能够加快访问数据的速度,因为存储引擎不再需要进行全表扫描来获原创 2021-11-16 11:46:46 · 536 阅读 · 0 评论 -
MySQL面试宝典
1.八股文带你吊打面试官之MySQL我们很多小伙伴平时会看很多面试八股文,但是经常遇到一个问题,结论是知道了,但是面试官继续深剖,问我们底层实现,这时我们懵圈了,因此我专门出一期面试突击专题,帮助各位小伙伴快速的准备好面试。2.如何准备MySQL面试?①把MySQL面试常问的一些基础概念写入笔记,面试前过一遍。②面试官经常问:你平时做过MySQL性能优化吗?面试官的内心是想,小子,SQL优化懂吗?锁的细粒度懂吗?MVCC是啥知道吗?InnoDB架构知道吗?Buffer Pool、Change Buf原创 2021-10-16 10:07:21 · 240 阅读 · 0 评论