59

关于 MySQL,你未必知道的

 5 years ago
source link: https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ%3D%3D&%3Bmid=2651961957&%3Bidx=1&%3Bsn=c4cdf7c27ade9c95fdf40c4c38e19da9&%3Bchksm=bd2d0fb98a5a86af13ec7f096bde37e1c8cd0d19e7124e6bdb53761314d5b64a39ba9fb
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

架构师之路年终总结(七)-MySQL篇

今年(去年)写了几万字关于 MySQL 的文章,年终稍作总结,希望对大家有帮助。

1. 索引到底是怎么实现的?

这两篇文章很重要,讲解MySQL索引底层实现,也是 阅读量最高 的几篇之一。

数据库索引,到底是什么做的?

这一篇,介绍了 哈希索引树索引数据预读/局部性原理B+树的优化思路

MyISAM与InnoDB的索引差异究竟是啥?

在上一篇基础之上,用图例讲述了MyISAM与InnoDB的索引差异与实践。


2. InnoDB,为何并发如此之高?
文章介绍了:
(1)什么是并发控制;
(2)并发控制的常见方法:锁,数据多版本;

(3)redo,undo,回滚段的实践;

(4)InnoDB如何利用回滚段实现MVCC,实现快照读。


结论是, 快照读 (Snapshot Read),这种不加锁的读,是InnoDB高并发的核心原因之一。

番外篇:《 快照读,在RR和RC下的差异

快照读,在 可重复读 读提交 两种事务隔离级别下,有微小的差异,文章通过案例做了简单叙述。
3. InnoDB的七种锁

先从一个有意思的案例,引出了锁的话题。

接下来的几篇文章详细的介绍了InnoDB内核中的七种锁。

InnoDB插入自增列,是表锁吗?

这一篇,介绍了InnoDB内核的第一种锁, 自增锁 (Auto-inc Locks)

InnoDB并发插入,会不会互斥?

这一篇,介绍了InnoDB内核的三种锁:

  • 共享/排他锁 Shared and Exclusive Locks)

  • 意向锁 Intention Locks)

  • 插入意向锁 Insert Intention Locks)

InnoDB,select为何会阻塞insert?

这一篇,介绍了InnoDB内核最有意思的三种锁:

  • 记录锁 (Record Locks)

  • 间隙锁 (Gap Locks)

  • 临键锁 (Next-Key Locks)

这几篇文章,有大量的案例,相信大家会有收获。


4. InnoDB如何巧妙实现,事务的4种隔离级别?
聊MySQL,聊锁,聊事务,一定逃不开 事务的隔离级别 ,本文简述了
读未提交 读提交 可重复读 串行化 的巧妙实现。


5.

别废话,各种SQL到底加了什么锁?

这是一篇直接给结论的文章:

  • 普通select

  • 加锁select

  • update与delete

  • insert

各类SQL语句分别加了什么锁?


6. 超赞,InnoDB调试死锁的方法!
死锁的复现和调试都是很困难的 ,本文通过几个 案例 ,分享了复现与调试并发事务+死锁的方法,大家一定要 动起手来 ,这样印象才会更加深刻。


7. MySQL不为人知的主键与唯一索引

本文分享了MySQL中最常见的两类约束: 主键与唯一索引约束 ,并细聊了这两类约束在InnoDB与MyISAM上的差异,有个MyISAM大坑,一定要注意绕过。


8. 其他
InnoDB的五项最佳实践,知其所以然
这是一篇聊InnoDB实践的文章:关于 count(*) ,关于 全文索引 ,关于 事务 ,关于 外键 ,关于 行锁与表锁 ,不仅会使用,还要知其所以然。

MySQL5.6,InnoDB的一些新特性

MySQL5.6,介绍了InnoDB的一些新特性,例如:居然能够支持 memcached插件 了,居然能 把InnoDB表放在DVD或者CD里 ,是不是有点意思?
这个数据库内核系列,查阅了
大量官网英文资料 ,也自己 动手实践了很多案例 ,以保证知识的体系性与准确性, 希望大家有收获。

知其然,知其所以然。

思路 比结论重要。

r6NBFbA.jpg!web

架构师之路 -分享 可落地 的技术文章

推荐阅读:

“立体化监控告警平台”-年终总结(一)

“缓存架构,一篇搞定”-年终总结(五)

“技术人如何带团队”-年终总结(六)

MySQL,有收获吗?谢

画外音:信我,仔细读完,定有收获(大部分同学估计只扫了一眼?)。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK