草庐IT

十年风雨,一个普通程序员的成长之路(十二)2022,我的第一本书出版了

01.我的第一本书1987年12月出生的我,在老家已是虚岁36了。在城市里,也快周岁35了。很意外的是,这个系列我竟然还能写到十二。更意外的是,将近一年多没在博客园发文了。2019年底说写一本书,没想到,真的写了一本书了。17岁的时候,接触了榕树下,当时想学树下野狐一样写出一本搜神记,想学痞子蔡写一本轻舞飞扬。然后终究只是想想而已。读过的书也太少,见过的人太少,经历过的故事也太少了。后来接触了幻剑书盟,反手却在起点cmfu网站上注册了一个作者号,写了十几章无疾而终的武侠小说。兜兜转转,17岁没实现的梦,竟然以另一种方式实现了。荒诞而现实的黑色幽默。在2022年还有几个月要结束的时候,出版了一本

唯一/普通索引的选择?change buffer

changebuffer一块存储了更新操作的缓冲区。它存在于MySQL的bufferpool中。它是怎么作用的:对于普通索引,如果更新操作的目标page页不在内存中,那么会先将这些更新操作记录在changebuffer中。等到select操作将该目标page页查询到内存时会执行更新。这样减少了随机访问磁盘的次数。对于唯一索引,由于执行更新操作时必须先将目标page页读取到内存中判断唯一性,因此没有必要使用该buffer,还能减少维护成本。适用场景:写多读少的场合。多次更新操作,然后同时mergebuffer中的记录,最大限度的利用了一次磁盘访问。如果是普通索引,在更新完之后马上就查询刚插入的那

唯一/普通索引的选择?change buffer

changebuffer一块存储了更新操作的缓冲区。它存在于MySQL的bufferpool中。它是怎么作用的:对于普通索引,如果更新操作的目标page页不在内存中,那么会先将这些更新操作记录在changebuffer中。等到select操作将该目标page页查询到内存时会执行更新。这样减少了随机访问磁盘的次数。对于唯一索引,由于执行更新操作时必须先将目标page页读取到内存中判断唯一性,因此没有必要使用该buffer,还能减少维护成本。适用场景:写多读少的场合。多次更新操作,然后同时mergebuffer中的记录,最大限度的利用了一次磁盘访问。如果是普通索引,在更新完之后马上就查询刚插入的那

2023.3.10 【模板】普通平衡树

2023.3.10【模板】普通平衡树推荐一篇写平衡树写的很好的博客:算法学习笔记(18):平衡树(一)-jeefy-博客园(cnblogs.com)问题陈述写一种数据结构,支持以下六种操作:1.插入一个数x2.删除一个数x3.查询x的排名(比x小的数+1)4.查询排名为x的数5.查询x的前驱6.查询x的后继这种操作可以用一个叫二叉查找树(BST)的东西实现,这玩意有以下性质:\[subtree(lson(x))翻译过来,就是一个节点左子树的值小于这个节点,右子树的值大于这个节点这样在理想状态下,就可以每次从树根开始,实现这个问题,设操作数为Q,则理论时间复杂度为\(O(Qlogn)\)但是会有

2023.3.10 【模板】普通平衡树

2023.3.10【模板】普通平衡树推荐一篇写平衡树写的很好的博客:算法学习笔记(18):平衡树(一)-jeefy-博客园(cnblogs.com)问题陈述写一种数据结构,支持以下六种操作:1.插入一个数x2.删除一个数x3.查询x的排名(比x小的数+1)4.查询排名为x的数5.查询x的前驱6.查询x的后继这种操作可以用一个叫二叉查找树(BST)的东西实现,这玩意有以下性质:\[subtree(lson(x))翻译过来,就是一个节点左子树的值小于这个节点,右子树的值大于这个节点这样在理想状态下,就可以每次从树根开始,实现这个问题,设操作数为Q,则理论时间复杂度为\(O(Qlogn)\)但是会有

【面试普通人VS高手系列】Fail-safe机制与Fail-fast机制分别有什么作用

前段时间一个小伙伴去面试,遇到这样一个问题。”Fail-safe机制与Fail-fast机制分别有什么作用“他说他听到这个问题的时候,脑子里满脸问号。那么今天我们来看一下,关于这个问题,普通人和高手应该如何回答吧。普通人的回答 额….嗯… 高手的回答Fail-safe和Fail-fast,是多线程并发操作集合时的一种失败处理机制。Fail-fast:表示快速失败,在集合遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出ConcurrentModificationException异常,从而导致遍历失败,像这种情况定义一个Map集合,使用Iterator迭代器进行数据遍历,在遍历过程中,对集合

【面试普通人VS高手系列】Fail-safe机制与Fail-fast机制分别有什么作用

前段时间一个小伙伴去面试,遇到这样一个问题。”Fail-safe机制与Fail-fast机制分别有什么作用“他说他听到这个问题的时候,脑子里满脸问号。那么今天我们来看一下,关于这个问题,普通人和高手应该如何回答吧。普通人的回答 额….嗯… 高手的回答Fail-safe和Fail-fast,是多线程并发操作集合时的一种失败处理机制。Fail-fast:表示快速失败,在集合遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出ConcurrentModificationException异常,从而导致遍历失败,像这种情况定义一个Map集合,使用Iterator迭代器进行数据遍历,在遍历过程中,对集合

从3k到3w,一名普通软件测试员真正的加薪路线图(建议收藏)

 其实测试行业未来发展之路是几乎所有关于软件测试工程师都会在意的话题,相信各位看官也很迷茫自己的发展路线。为了方便大家选择和比较,我也将我的经验和观点分享出来,以作参考。如果小伙伴们有更好的观点,欢迎分享和探讨,互相学习!一、技术方向就技术方向的职业发展之路,我非常赞同之前看过的一篇文章里说的,如果你打定主意就想往测试技术方向去发展,做一个技术型的牛人,那摆在你面前的就只有三条路:√自动化测试工程/架构师√性能测试工程师√行业性测试专家※特别提醒:你几乎没有其他选择,甭管你的领导怎么忽悠你,做手动测试大量需要劳动力也好,自动化测试现在还没有大规模发展起来也罢,如果你只会手动测试,并且你所测试的

从3k到3w,一名普通软件测试员真正的加薪路线图(建议收藏)

 其实测试行业未来发展之路是几乎所有关于软件测试工程师都会在意的话题,相信各位看官也很迷茫自己的发展路线。为了方便大家选择和比较,我也将我的经验和观点分享出来,以作参考。如果小伙伴们有更好的观点,欢迎分享和探讨,互相学习!一、技术方向就技术方向的职业发展之路,我非常赞同之前看过的一篇文章里说的,如果你打定主意就想往测试技术方向去发展,做一个技术型的牛人,那摆在你面前的就只有三条路:√自动化测试工程/架构师√性能测试工程师√行业性测试专家※特别提醒:你几乎没有其他选择,甭管你的领导怎么忽悠你,做手动测试大量需要劳动力也好,自动化测试现在还没有大规模发展起来也罢,如果你只会手动测试,并且你所测试的

MySQL:为什么说应该优先选择普通索引,尽量避免使用唯一索引

前言在使用MySQL的过程中,随着表数据的逐渐增多,为了更快的查询我们需要的数据,我们会在表中建立不同类型的索引。今天我们来聊一聊,普通索引和唯一索引的使用场景,以及为什么说推荐大家优先使用普通索引,尽量避免使用唯一索引。对于一个普通的二级索引,目的就是为了加速查询,所以我们可能会为表中的某个字段或者某些字段,建立一个普通的二级索引。而对于唯一索引来说,由于其唯一键约束的特性,有时我们会更多的赋予其业务含义。比如有一张存储身份证号的表,为了保证身份证号的唯一性,我们会在身份证号字段上建立唯一索引。那为什么说,不推荐大家使用唯一索引呢?接下来,我们从查询和更新两方面分析一下唯一索引和普通索引的性