博客阅读


数据库:


数据库索引相关(强烈推荐,写得很细致有深度,好好看)
http://blog.codinglabs.org/articles/theory-of-mysql-index.html

美团sql优化总结(写的很好)
https://tech.meituan.com/2014/06/30/mysql-index.html

sql优化(不仅仅是索引方面)
https://www.cnblogs.com/sochishun/p/7003513.html

事务隔离级别
https://blog.csdn.net/weixin_41835916/article/details/81455953
https://blog.csdn.net/Zhxin606a/article/details/89574705(未看,可以看一下)

读锁可以防止读别人正在修改的数据,通过读锁可以防止读脏数据。因为别人写的时候加了写锁,如果没有读锁那么自己可以直接去读(此时对方回滚,导致自己读的数不对)。如果有读锁,那么自己需要读对方的数据时需要先加读锁,但是对面正在该数据有自己的写锁,因此自己的读锁加不上去就不能读对面的数据,防止了读脏数据。

其中对读已提交和可重复读的理解:
读已提交:读的时候加共享锁,读完立即释放。更新数据的时候加排它锁,事务结束才释放
可重复度:读的时候加共享锁,事务结束才释放。更新数据加排它锁,事务结束才释放
(这里共享锁类似读锁,排它锁类似写锁,共享锁允许其他事务读,但不许其他事务写,排它锁不允许其他事务读和写)

在这里插入图片描述
此时,如果是读已提交级别的话,3行读完立即释放锁,4行可以去修改数据了,从而导致不可重复读。如果是可重复读级别的话,3读完不释放锁,4想去修改数据是不被允许的,只有B执行完才可以去修改该数据(此时,在B执行期间,无论读多少次该数据都是一致的,不会有不同数值,因为其他事务不可以改它),从而避免了不可重复读。

但是可重复读的问题是事务只给读的数据加了锁,此时不可以修改读的数据,但是可以给数据库里新增数据,此时如果事务先读了一次数据,然后其他事务给数据库里新增了数据(这是允许的),当事务再去读的时候会发现多出了一些数据,导致幻读。

乐观锁和悲观锁
https://www.cnblogs.com/0201zcr/p/4782283.html
乐观锁两种实现方式:版本号和CAS(CAS会出现ABA问题)
版本号方法的理解:版本号属于数据库,假设当前版本号是1,A读数据的时候会同时读取此时数据库的版本号1,然后自己修改数据,将版本号+1得到2,此时A提交的时候发现自己当时读的版本号是1,当前数据库的版本号也是1,说明在此期间没有其他事务更改数据,于是他就提交了修改的数据,同时提交版本号2,此时数据库的版本号变成了2。在A读数据后提交之前,B也读了数据及版本号1,然后修改了数据,并将版本号变成2,此时B要提交的时候发现自己当初读的版本号是1,但是此时数据库的版本号是2(因为A已经提交了),因此他不能够更新成功。——注意在这个过程中,一个事务有两个版本号,一个是自己当初读进来的版本号,一个是自己改后的版本号,每次提交的时候比较的是读进来的版本号和数据库的版本号,而自己改后的版本号是用来修改数据库的版本号的。
https://blog.csdn.net/caisongcheng_good/article/details/79916873(未看,CAS介绍的不清楚)

主键,超键,候选键:
https://blog.csdn.net/fjxcsdn/article/details/76549751

B树和B+树
https://www.cnblogs.com/guohai-stronger/p/9225057.html(写得很详细,有图)
https://blog.csdn.net/aikudexue/article/details/90718069 (自己博客总结的)
https://www.cnblogs.com/gengsc/p/7230514.html (B树和B+树的区别)
https://blog.csdn.net/wtq1993/article/details/51776558
https://blog.csdn.net/zjkC050818/article/details/78278483(很全面。。之前没看,太多了。后续有时间再看一下,优先级不高)

可扩展哈希索引
https://blog.csdn.net/qq_33171970/article/details/88534814

聚簇索引和非聚簇索引
https://www.jianshu.com/p/fa8192853184

sql语句执行顺序
https://www.cnblogs.com/Qian123/p/5669259.html (里面的执行顺序图是错的,order_by应该在select之后,还有group_by后得到的表也是错的)
https://blog.csdn.net/weixin_39703170/article/details/79056533

sql优化
https://www.cnblogs.com/guanghe/p/9211399.html
https://www.cnblogs.com/yunfeifei/p/3850440.html

水平切分与垂直切分
https://blog.csdn.net/weixin_39684625/article/details/79527739 (简略)
https://www.cnblogs.com/butterfly100/p/9034281.html(详细)

数据库各种锁简介
https://blog.csdn.net/With_Her/article/details/81535813
https://blog.csdn.net/xifeijian/article/details/20313977 (比较详细,还没看)

GAP锁 (没看明白)
https://blog.csdn.net/shasharoman/article/details/82023425

MVCC
https://www.jianshu.com/p/cef49aeff36b (最后幻读的例子是当前读造成的幻读)
快照度select由于只读版本号小于或等于当前事务版本号的数据,因此其他事务insert进去的数据select是读不到的。
当前读(如update)由于是选出所有数据行,因此其他事务insert的数据行版本号虽然大于当前事务的版本号,但是当前事务还是可以去修改该数据,因此造成了幻读

意向锁
https://blog.csdn.net/qq_41376740/article/details/82346255
意向锁是解决表锁和行锁共存的问题,是一种多粒度锁。
意向锁是表级锁。
意向锁之间是兼容的,意向锁和行锁之间是兼容的。





计算机网络:

TCP状态转换图详解
https://www.cnblogs.com/figo-cui/p/5137993.html

https://blog.csdn.net/qq_38950316/article/details/81087809

TCP滑动窗口
https://blog.csdn.net/yao5hed/article/details/81046945

https://www.jianshu.com/p/51beb0b7cd57

DNS域名系统
https://blog.csdn.net/codejas/article/details/80086068

https://blog.csdn.net/qq_38314112/article/details/80770746

HTTP状态码
https://blog.csdn.net/qq_35689573/article/details/82120851

cookie和session的区别
https://www.cnblogs.com/songanwei/p/9387696.html

https://blog.csdn.net/qq_35257397/article/details/52967241?utm_source=copy

HTTP缓存
https://www.cnblogs.com/chenqf/p/6386163.html (强缓存,协商缓存)

路由表(路由表部分好好看一下,里面有数据如何从A到B的详细过程)
https://blog.csdn.net/lingedeng/article/details/79412987

路由器与交换机的区别与联系
https://blog.csdn.net/baidu_32045201/article/details/78305586

路由器的作用简介
https://blog.csdn.net/weixin_43379478/article/details/83589116

ARP协议 ARP缓存表 ARP响应
https://blog.csdn.net/A_LINGYUAN/article/details/80036329

http://www.xuetangx.com/courses/course-v1:USTC+SE20190403X+sp/courseware/1fe7ed3bcc4146fe8d8334fb86c8b089/3a6302cbe2c14886bd58765f57afb7c1/ (ARP解析视频)

局域网内两个主机间通信的ARP解析的是目的IP
主机到路由器,路由器到路由器解析的是下一跳的IP(此时目的mac地址和目的IP地址不是对应关系了)
路由器到主机的ARP解析的是目的IP
从A网到B网间传递信息需要经过A->路由器1->路由器2->…->路由器n->主机B (应该主机到路由器之间还有交换机)

URL和URI的区别
https://blog.csdn.net/koflance/article/details/79635240
个人理解:URI即一个具体的资源,而URL只是该资源的地址,该地址内可能有多个资源,要具体到某个资源还需要直到该资源的名字,即URN。

浏览器输入URL的执行过程
https://blog.csdn.net/u013363501/article/details/63692528 (http层)
https://www.nowcoder.com/discuss/3853?pos=264&type=1&order=0 (下面的层)
https://blog.csdn.net/nlznlz/article/details/53140881(http层详细,略看即可)
面试的时候讲1,2结合起来答就好

socket的SO_LINGER选项
https://www.cnblogs.com/my_life/articles/5174585.html在这里插入图片描述





操作系统

fork()-—父子进程共享 (写得很详细,可以好好看一下)
https://blog.csdn.net/shenwansangz/article/details/39184789

fork和vfork的区别
https://blog.csdn.net/ValDC_Morning/article/details/77414826
https://www.cnblogs.com/1932238825qq/p/7373443.html





设计模式

单例模式
https://blog.csdn.net/cjbct/article/details/79266057 (写的比较详细)
https://www.jianshu.com/p/69eef7651667 (内存栅栏问题)
https://blog.csdn.net/10km/article/details/49777749(内存栅栏,未看)

六大原则
https://blog.csdn.net/eleanoryss/article/details/79555200(只看前面六大原则,后面设计模式不用看)

**

C++

**

shared_ptr的线程安全性
https://blog.csdn.net/solstice/article/details/8547547 (多线程同时读写同一shared_ptr对象,线程不安全)

类的容器类成员(map,vector等)存shared_ptr/弱回调技术
https://blog.csdn.net/liuxuejiang158blog/article/details/13007153
muduoP21-P25

1)map存shared_ptr,则指向的对象不会销毁(指的是外面不需要该对象了,但是容器存的shared_ptr,故
指向对象的引用计数不会到0,因此不销毁)
(2)改进:用weak_ptr代替shared_ptr.
    问题:虽然外部对象可以被销毁了,但是容器里的weak_ptr始终占用容器空间
(3)改进:利用shared_ptr传入删除器,在对象析构的时候清理容器里的weak_ptr
	问题:线程安全问题。(比如A类的容器成员里存放B类的weak_ptr)。B类的shared_ptr删除器中需要传
	入A类的指针,那么有可能A先于B析构,那么B销毁取调用A的函数就会出错。
(4)改进:采用shared_ptr来解决A的生命周期问题,shared_from_this。
	问题:A的生命周期被延长了
(4)改进:弱回调,用weak_ptr管理A的生命周期。即B调用删除器时,如果A已经销毁了就不清除A的容器了,
如果A还在,才去清除A的容器

虚函数表
https://blog.csdn.net/caoshangpa/article/details/80112673

智能指针循环引用详解(写的很详细)
https://blog.csdn.net/qq_34992845/article/details/69218843

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值