
MySQL
文章平均质量分 86
在酒吧写代码
一个很懒的程序员...
展开
-
翻遍GitHub,这份MySQL全面手册,受喜爱程度不输任何大厂笔记
本书还涉及了熟悉Oracle或其他数据库系统的用户和管理员所需要的基本知识。体验过MySQL的人,对熟悉的主题会找到新的视角,从而更深入洞察MySQL的世界,提高他们现有的知识和经验。 在读者使用MySQL时,本书将会是一个颇有价值的资源。原创 2022-11-26 13:39:08 · 219 阅读 · 0 评论 -
硬核解析MySQL的MVCC实现原理,面试官看了都直呼内行
如果没有MVCC,想要实现同一条数据的并发读写,还要保证数据的安全性,就需要操作数据的时候加读锁和写锁,这样就降低了数据库的并发性能。 有了MVCC,就相当于把同一份数据生成了多个版本,在操作的开始各生成一个快照,读写操作互不影响。无需加锁,也实现数据的安全性和事务的隔离性。.........原创 2022-08-16 10:19:37 · 218 阅读 · 0 评论 -
全网最全一篇数据库MVCC详解,不全你打我
什么是MVCC 全称Multi-Version Concurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能。以下文章都是围绕InnoDB引擎来讲,因为myIsam不支持事务。 同一行数据平时发生读写请求时,会上锁阻塞住。但mvcc用更好的方式去处理读—写请求,做到在发生读—写请求冲突时不用加锁。 这个读是指的快照读,而不是当前读,当前读是一种加锁操作,是悲观锁。 那它到底是怎么做到读—写不用加锁的,快照读和当前读又是什么鬼,跟着你们的贴心老哥,继续往下看。 .原创 2020-10-08 20:55:35 · 732 阅读 · 0 评论 -
Mysql写入频繁,怎么破?这是我见过的最清晰的“神操作”
Mysql在写入压力很大,怎么办? 高并发下的性能最大的问题,大都在数据库,以前我们做二十万超级群,mongodb每个月都会出事故. 我们聊聊,高并发下如何缓解mysql的压力 ⚠️:mysql是锁锁表不锁库,sqlite是锁库不锁表 环境准备 Mac mysql navicat wrk压测工具 node.js环境 下载wrk brew install wrk 如果这里卡住,可以调整 `替换brew.git: cd "$(brew --repo)" git remote se...原创 2020-09-26 13:54:28 · 1270 阅读 · 0 评论 -
MySQL热点面试题:为什么我使用了索引,查询还是慢?
经常有同学问我,我的一个SQL语句使用了索引,为什么还是会进入到慢查询之中呢?今天我们就从这个问题开始来聊一聊索引和慢查询。 另外插入一个题外话,个人认为团队要合理的使用ORM,可以参考 ORM的权衡和抉择。合理利用的是ORM在面向对象和写操作方面的优势,避免联合查询上可能产生的坑(当然如果你的Linq查询能力很强另当别论),因为ORM屏蔽了太多的DB底层的知识内容,对程序员不是件好事,对性能有极致追求,但是ORM理解不透彻的团队更加要谨慎。 案例剖析 言归正传,为了实验,我创建了如下表: 该表有三原创 2020-09-26 13:45:13 · 528 阅读 · 1 评论 -
Mybatis如何执行Select语句,你真的知道吗?
前言 本篇文章是Myabtis源码分析的第三篇,前两篇分别介绍了Mybatis的重要组件和围绕着Mybatis中的重要组件教大家如何阅读源码的一些方法。 今天接上一篇,围绕Mybatis中的selectList()来看一看Mybatis底层到底做了什么,有什么高级的地方。 环境准备 本篇文章讲的一切内容都是基于Mybatis3.5和SpringBoot-2.3.3.RELEASE。 由于此篇文章是基于前两篇文章的基础之上,因此重复的内容不再详细赘述了。 撸起袖子就是干原创 2020-09-14 21:15:32 · 686 阅读 · 0 评论