博客阅读

    xiaoxiao2022-07-07  214


    数据库:


    数据库索引相关(强烈推荐,写得很细致有深度,好好看) 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)