首页
学习
活动
专区
工具
TVP
发布

架构师之路

专栏作者
459
文章
485907
阅读量
207
订阅数
如何系统性学习数据库知识? | 个人经验分享
之前发了一些文章: 《频繁插入,用什么存储引擎更合适?》 《MySQL性能调优,必须掌握这一个工具》 《数据库允许空值(null),往往是悲剧的开始》 《插入时,究竟发生了什么?》 数据库是应用开发中不可或缺的一环,很多朋友会问我,如何系统性学习数据库知识,今天和大家简单分享一下。 首先,要搞透数据库,要学哪几方面的知识? 以我对MySQL的学习为例,至少三个方面的内容需要了解与掌握的: 其一,应用层面:各行各业,是如何使用MySQL来解决各类业务问题的。 画外音:研发工程师必须掌握。 其二,内核层面:M
架构师之路
2022-10-10
1K0
秒换存储引擎,又多了一种架构方案? | 数据库系列
在做业务架构的过程中,你是否遇到过类似的痛点? (1)数据量太大,容量复杂性上移到业务层; (2)并发量太大,性能复杂性上移到业务层; (3)前台与后台存储异构,满足不同查询需求; (4)线上与线下存储异构,满足大数据需求; (5)存储系统迁移成本高,不敢轻易做重构; (6)... 职业生涯十五年,基本都在使用MySQL做线上业务的存储。最近这几年,遇到的问题慢慢多起来,严重影响了研发效率。TiDB近年甚火,于是最近做了一些调研,与大家分享。 如一贯风格,更多的聊:TiDB究竟解决什么问题,以及为什么这
架构师之路
2022-10-08
5060
频繁插入,用什么存储引擎更合适?| 数据库系列
有童鞋在后台留言: 沈老师,MyISAM只支持表锁,但网上文章却说,在并发插入量比较大的时候,比较适合使用MyISAM,这矛盾吗? 这个问题,涉及MySQL表锁的一些细节,借着这个问题,系统性说下表锁的“所以然”。 画外音:网上不少文章只说结论,不说为什么,容易让人蒙圈。 MySQL表锁知识系统性梳理。 哪些存储引擎使用表锁? MySQL,除InnoDB支持行锁外,MySQL的其他存储引擎均只使用表锁,例如:MyISAM, MEMORY, MERGE等。 表锁有什么好处? (1)表锁占用内存少很多,行锁的数
架构师之路
2022-09-27
9810
我被嘲笑了:被查询的列,为啥要放到索引里?(1分钟系列)
《MySQL性能调优,这个工具最有用》留了一个尾巴: select id,name where name='shenjian' select id,name,sex where name='shenjian' 多查询了一个属性,为何检索过程完全不同? 什么是回表查询? 什么是索引覆盖? 如何实现索引覆盖? 哪些场景,可以利用索引覆盖来优化SQL? 这些,这是今天要分享的内容。 画外音:本文试验基于MySQL5.6-InnoDB。 一、什么是回表查询? 这先要从InnoDB的索引实现说起,InnoDB有两大类
架构师之路
2022-08-26
3380
插入时,究竟发生了什么?(非开车,纯技术交流)
《MySQL自增ID,居然大部分人都搞错了?》中的作业题,有少量答对的人,但原理讲得不透,今天简单说下作业题中的答案,以及相关知识点。 作业题是这样的: drop table t1; create table t1(     id int not null auto_increment,     name varchar(10) unique,     count int default 0,     primary key(id),     index(name) )engine=innodb; ins
架构师之路
2022-06-06
3490
MySQL自增ID,居然大部分人都搞错了!?
《MySQL删除数据的三种方式》中的作业题,99%的人答错,有点出乎意料。 画外音:评论中不乏嘲笑知识点简单的小伙伴。 今天简单说下作业题中的答案,以及知识点。 作业题是这样的: 实验步骤如上图: 第一步:建表,设定自增列; 第二步:指定id=1插入,锚定第一行是id是1; 第三步:不指定id,依赖自增机制,插入3行; 画外音:此时id应该变为2,3,4了? 第四步:delete删除所有记录; 画外音:坑就容易出在这里。 第五步:指定id=0插入; 第六步:指定id=1插入; 第七步:不指定id,依赖自
架构师之路
2022-05-18
8860
MySQL删除数据的三种方式!!!(有超级大坑)
行数据批量delete时,InnoDB如何处理自增ID的? 这里有一个潜在的大坑。 整个实验步骤如上图: 第一步:建表,设定自增列; 第二步:指定id=1插入,锚定第一行是id是1; 第三步:不指定id,依赖自增机制,插入3行; 画外音:此时id应该变为2,3,4了? 第四步:delete删除所有记录; 画外音:坑就容易出在这里。 第五步:指定id=0插入; 第六步:指定id=1插入; 第七步:不指定id,依赖自增机制,插入1行; 请问,此时表中的三行记录,id分别是多少? 是否符合大家的预期? 今天花
架构师之路
2022-05-06
4870
MySQL到底支不支持哈希索引?(收藏)
(1)InnoDB用户无法手动创建哈希索引,这一层上说,InnoDB确实不支持哈希索引;
架构师之路
2022-04-26
9210
突然掉电,为啥MySQL也不会丢失数据?(收藏)
MySQL采用buffer机制,避免每次读写进行磁盘IO,提升效率: 《缓冲池(buffer pool)》 《写缓冲(change buffer)》 《日志缓冲(log buffer)》 MySQL的buffer一页的大小是16K,文件系统一页的大小是4K,也就是说,MySQL将buffer中一页数据刷入磁盘,要写4个文件系统里的页。 如上图所示,MySQL里page=1的页,物理上对应磁盘上的1+2+3+4四个格。 那么,问题来了,这个操作并非原子,如果执行到一半断电,会不会出现问题呢? 会,这就是所谓
架构师之路
2022-04-19
1.6K0
MySQL写缓冲(change buffer),终于懂了!!!(收藏)
上篇《MySQL缓冲池(buffer pool),终于懂了》,介绍了InnoDB缓冲池的工作原理。 简单回顾一下: (1)MySQL数据存储包含内存与磁盘两个部分; (2)内存缓冲池(buffer pool)以页为单位,缓存最热的数据页(data page)与索引页(index page); (3)InnoDB以变种LRU算法管理缓冲池,并能够解决“预读失效”与“缓冲池污染”的问题; 画外音:细节详见《MySQL缓冲池(buffer pool),终于懂了》。 毫无疑问,对于读请求,缓冲池能够减少磁盘IO,
架构师之路
2022-03-30
1.1K0
MySQL缓冲池(buffer pool),终于懂了!!!(收藏)
应用系统分层架构,为了加速数据访问,会把最常访问的数据,放在缓存(cache)里,避免每次都去访问数据库。 操作系统,会有缓冲池(buffer pool)机制,避免每次访问磁盘,以加速数据的访问。 MySQL作为一个存储系统,同样具有缓冲池(buffer pool)机制,以避免每次查询数据都进行磁盘IO。 今天,和大家聊一聊InnoDB的缓冲池。 InnoDB的缓冲池缓存什么?有什么用? 缓存表数据与索引数据,把磁盘上的数据加载到缓冲池,避免每次访问都进行磁盘IO,起到加速访问的作用。 速度快,那为啥不把
架构师之路
2022-03-24
1.2K0
架构师之路,21年干货精选
2021年,迅猛过去了。 今天,给大家做一个分类精选,选取12.31之前发布的,阅读还不错的100篇,大家点击标题,直接阅读。如果之前有错过的文章,这是一个很好的补课机会。 这几篇,首先推荐大家读一读: 《我们从来都反对“大中台,小前台”的架构设计!》2.1W+《关于MySQL,这篇都没人赞,太没天理了!》1.3W+《关于MySQL异步复制,MGR内核原理!》《求解“微信群覆盖”的三种方法:暴力,染色,链表,并查集》关于底层内核的文章,似乎阅读越来越低了。 今年花在开源学习上的时间并不多: 《1万行代码,单
架构师之路
2022-03-04
9810
InnoDB,快照读,在RR和RC下有何差异?(很多人,以为自己懂了...)
MySQL数据库,InnoDB存储引擎,为了提高并发,使用MVCC机制,在并发事务时,通过读取数据行的历史数据版本,不加锁,来提高并发的一种不加锁一致性读(Consistent Nonlocking Read)。
架构师之路
2022-02-12
5390
别废话,各种SQL到底加了什么锁?
(1)在读未提交(Read Uncommitted),读提交(Read Committed, RC),可重复读(Repeated Read, RR)这三种事务隔离级别下,普通select使用快照读(snpashot read),不加锁,并发非常高;
架构师之路
2022-02-12
3310
区块链究竟是啥?1分钟系列
区块链,比特币这些概念很火,但很多人搞不清楚它究竟是啥,从技术的角度,从架构的角度,用通俗的语言谈谈楼主的理解。
架构师之路
2021-09-27
1730
为什么MySQL要升级组复制?1分钟系列
前几天发了《Galera,MySQL主从之外的另一种选择》之后,很多朋友在评论里留言:
架构师之路
2021-09-27
3610
MySQL主从之外,你又多了一项选择,Galera
为了保证数据库的高可用,为了保证性能的扩展,绝大部分公司又会使用主从同步,读写分离的MySQL集群架构。
架构师之路
2021-09-27
1.1K0
MyISAM与InnoDB的索引,究竟有什么差异?
数据库的索引分为主键索引(Primary Inkex)与普通索引(Secondary Index)。InnoDB和MyISAM是怎么利用B+树来实现这两类索引,其又有什么差异呢?这是今天要聊的内容。
架构师之路
2021-09-07
3980
关于MySQL,这篇都没人赞,太没天理了!
mysqldump的产出物是一个包含了建表,插入数据的SQL语句集合,类似于这样:
架构师之路
2021-09-07
3460
这次终于懂了,InnoDB的七种锁(收藏)
MySQL是目前世界上最流行的数据库,InnoDB是MySQL最流行的存储引擎,它在大数据量高并发量的业务场景下,有着非常良好的性能表现,之所以如此,是和InnoDB的锁机制相关。
架构师之路
2021-05-11
1.6K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档