自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 复杂度分析

本文是学习算法的笔记,《数据结构与算法之美》,极客时间的课程数据结构和算法 解决快与省的问题 即如何让代码运行的更快,如何让代码更省存储空间复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系事后统计法,也就是跑一遍代码,就可以得到执行时间和占用内存大小。其局限性在于:结果非常依赖测试环境,比如处理器不同,硬件不同,导致结果可能不一样。还有一点是测试结果受数据规模的影响很大大O...

2018-09-30 17:50:42 201

转载 InnoDB,快照读,在RR和RC下有何差异?

本文取自微信公众号——《架构师之路》InnoDB是非常适合互联网业务的存储引擎,其多版本并发控制(Multi Version Concurrency Control, MVCC),快照读(Snapshot Read)机制,能够通过读取回滚段(rollback segment)中数据的历史版本,在事务读取记录的时候不用加锁,以支持超高的并发。【并发控制,快照读,回滚段】辅助阅读: 《Inn...

2018-09-29 15:35:56 1369

转载 InnoDB的快照读,到底和什么相关?

本文取自微信公众号——《架构师之路》InnoDB是非常适合互联网业务的存储引擎,其多版本并发控制(Multi Version Concurrency Control, MVCC),快照读(Snapshot Read)机制,能够通过读取回滚段(rollback segment)中数据的历史版本,在事务读取记录的时候不用加锁,以支持超高的并发。【并发控制,快照读,回滚段】辅助阅读: 《Inn...

2018-09-26 17:37:06 251

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

本文取自微信公众号——《架构师之路》这个月花了一些功夫写InnoDB:并发控制,MVCC,索引,锁… 有朋友留言:你TM讲了这么多,锁分了这么多类型,又和事务隔离级别相关,又和索引相关,究竟能不能直接告诉我,一个SQL到底加了什么锁!?我竟无言以对。好吧,做过简单梳理之后,今天尝试着直接回答,尽量做到不重不漏,各种SQL语句究竟加了什么锁。一、普通select (1)在读未提...

2018-09-23 16:09:39 381

转载 4种事务的隔离级别,InnoDB如何巧妙实现?

本文取自微信公众号——《架构师之路》事务ACID特性,其中I代表隔离性(Isolation)。什么是事务的隔离性? 隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离。一个事务怎么会干扰其他事务呢? 咱们举例子来说明,假设有InnoDB表: t(id PK, name);表中有三条记录: 1, shenji...

2018-09-17 10:10:36 287

转载 插入InnoDB自增列,居然是表锁?

本文取自微信公众号——《架构师之路》一,案例说明 MySQL,InnoDB,默认的隔离级别(RR),假设有数据表: t(id AUTO_INCREMENT, name);数据表中有数据: 1, shenjian 2, zhangsan 3, lisi事务A先执行,还未提交: insert into t(name) values(xxx);事务B后执行: insert ...

2018-09-15 15:39:43 382

转载 InnoDB,select为啥会阻塞insert?

本文取自微信公众号——《架构师之路》MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。但是,如《InnoDB,5项最佳实践》所述,如果查询没有命中索引,也将退化为表锁。InnoDB的细粒度锁,是实现在索引记录上的。一,InnoDB的索引 InnoDB的索引有两类索引,聚集索引(Clustered Index)与普通索引(Secondary Index)。InnoD...

2018-09-15 15:38:04 195

转载 InnoDB并发如此高,原因竟然在这?

本文取自微信公众号——《架构师之路》一、并发控制 为啥要进行并发控制? 并发的任务对同一个临界资源进行操作,如果不采取措施,可能导致不一致,故必须进行并发控制(Concurrency Control)。技术上,通常如何进行并发控制? 通过并发控制保证数据一致性的常见手段有: 锁(Locking) 数据多版本(Multi Versioning)二、锁 如何使用普通锁保证一致性...

2018-09-14 17:10:47 210

转载 InnoDB,5项最佳实践,知其所以然?

本文取自微信公众号——《架构师之路》第一篇,说说MySQL两个最常用的存储引擎,MyISAM和InnoDB。照自己的理解,把一些知识点总结出来,不只说知识点,多讲“为什么”。一、关于count(*) 知识点:MyISAM会直接存储总行数,InnoDB则不会,需要按行扫描。潜台词是,对于select count(*) from t; 如果数据量大,MyISAM会瞬间返回,而InnoDB...

2018-09-14 17:07:51 180

原创 mysql 更新操作——You can't specify target table 'aa' for update in FROM clause

不知道大家用mysql时,有没有遇到这样的问题错误代码: 1093——You can’t specify target table ‘aa’ for update in FROM clause (大意是:你不能从子句中更新目标表’aa’)UPDATE `aa`SET user_id_ = 'd0364fca2c7b4826a3b3e12ba6ac435d'WHERE id...

2018-09-12 11:46:39 2622

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除