随笔分类 - 技术
摘要:在做一件什么事情: 对新用户创建一个账号。如果用户账户已经存在,则对该账户的余额进行增减update操作。如果用户账户不存在,创建一个新的账户。并对用户账户明细表进行记录。 对要插入的数据和系统中已经存在的数据取交集,然后与要插入的数据取补给,所得数据就是要插入系统中的新的用户数据。 遇到了什么问题
阅读全文
摘要:印象深刻的是刚进入一家公司,给了一个excel,里面的内容是线上慢查询的sql。因为sql太长过于复杂,然后就开启了顺着sql梳理业务的模式。 这里只是单纯的优化sql,但出现系统慢的情况,IO优化应该按照以下思路进行。 优化思路 每个人理解的性能优化都不一样,对于数据库的性能优化,我理解的就是响应
阅读全文
摘要:整体分层 连接层 服务层 存储引擎层 连接层 客户端要连接到服务器 3306 端口,必须要跟服务端建立连接,那么 管理所有的连接,验证客户端的身份和权限,这些功能就在连接层完成。 服务层 连接层会把 SQL 语句交给服务层,这里面又包含一系列的流程。 比如查询缓存的判断、根据 SQL 调用相应的接口
阅读全文
摘要:为什么要有索引 因为加速查询,快呀!!!这是我回答面试官的第一句话,哈哈。 首先数据是以文件的形式存放在磁盘上面的,每一行数据都有它的磁盘地址。如果 没有索引的话,要从 500 万行数据里面检索一条数据,只能依次遍历这张表的全部数据,直到找到这条数据。 但是有了索引之后,只需要在索引里面去检索这条数
阅读全文
摘要:一定要有主键 一般使用的innodb引擎中会根据主健创建聚簇索引,这种方式会使得数据排列的更连续,减少随机IO 关于数据长度 考虑数据范围,够用的前提下,数据长度是越简单越好,数据类型是越小越好。 尽量避免使用TEXT/BLOB类型 data page 默认是16kb,每行数据长度超过8kb就会出现
阅读全文
摘要:优势总结 只有数据库引擎为innodb且事务的隔离级别repeatable——read (可重复读)的时候 才会使用mvcc来实现多版本控制 事务中的可重复读可以有效的避免幻读问题 innodb从硬盘上读取数据的时候,会读取一整页的数据,然后加载到内容中,在内存中创建hash索引,从而提高读操作的效
阅读全文
摘要:这里是早起整理的myisam优势,因为当时刚毕业那会web1.0时代还没过时,很多的门户网站实际上就只是内容展示的时候,或者发布文章公告的场景。所以对于这样的读多写少的场景,大多数使用的还是myisam引擎。那时候用的都是5.X,2017年为了解决微信用户昵称存在特殊字符,才开始使用utf8mb4编
阅读全文
摘要:CPU调度层次 高级调度:是作业调度。将外村的作业加载到内存里,分配对应的资源,然后加入就绪队列 低级调度:将就绪队列中的进程调度到CPU执行 中级调度:为了提高内存的利用率和系统的吞吐量,将暂时不能运行的进程调到外存等待。也称为挂起状态 调度算法的目标 资源利用率:CPU有效的工作时间/(CPU有
阅读全文
摘要:数据的组织 一个磁盘设备 》多个物理盘片 一个物理盘片 》正反两面存储面 一个存储面 》多个磁道(每个磁道上存储容量时一样的,可存储相同数目的二进制位),所以,内层密度比外层大 一个磁道 》多个扇区 一个扇区称为时一个盘块,也是一个数据块 寻道算法: 读取数据时间: 数据缓冲区: 这些内容当初没有记
阅读全文
摘要:进程是系统资源分配的最小单位,线程是最小的执行单位。 然而,现在的高级设计底层还是基于这个理论基础实现的。比如java的线程,还有最新版本的JDK的协程都是在为了更好的让CPU执行任务。 线程是为了使用多CPU提高笑了 为什么一定要使用线程? 线程是处理机调度的基本单位。cpu进行任务调度的时,进程
阅读全文
摘要:进程同步 同步实际上是指:将多个进程,按照顺序,有序执行。 让进程有序进行的场景有很多。比如:一个进程依赖另外一个进程的计算结果;一个进程等待另外一个对临界资源的访问;还有像生产者消费者模型中的相互配合等等。 进程同步应该遵循以下原则 1.空闲让进:有效利用临界资源 2.忙着等待:保持对临界资源的互
阅读全文
摘要:程序装入方式 绝对装入:程序逻辑地址和物理地址是完全对应的。不现实 可重定位装入:装入的时候重新 计算内存地址。程序中的实际地址加上程序载入的起始地址;但是解决不了进程挂起 后重新唤醒的问题。唤醒的后的进程载入内存地址,位置一定会发生改变的。 动态运行时载入:专门有一个重定位寄存器,记录进程中程序和
阅读全文
摘要:
什么是死锁 一组进程中的每一个进程都在等待仅由该组进程中其他进程才能引发的事件,这样就形成死锁了。 死锁的原因 竞争不可抢占的资源 竞争可消耗资源 进程推进顺序不当 死锁产生的必要条件 1.互斥条件:对资源互斥访问 2.请求和保持:进程已经拥有了一个资源,还需要拥有其他资源,此时其他资源被占用,进程
阅读全文
什么是死锁 一组进程中的每一个进程都在等待仅由该组进程中其他进程才能引发的事件,这样就形成死锁了。 死锁的原因 竞争不可抢占的资源 竞争可消耗资源 进程推进顺序不当 死锁产生的必要条件 1.互斥条件:对资源互斥访问 2.请求和保持:进程已经拥有了一个资源,还需要拥有其他资源,此时其他资源被占用,进程
阅读全文
摘要:这些内容都是2020年备考期间总结的大纲,随便揪起来一个知识点都能串起来一个知识网
阅读全文
摘要:这些内容都是2020年备考期间总结的大纲,随便揪起来一个知识点都能串起来一个知识网
阅读全文
摘要:这些内容都是2020年备考期间总结的大纲,随便揪起来一个知识点都能串起来一个知识网
阅读全文
摘要:调度是一种思想,是一种压榨计算机资源的思想。回头想想就和外卖平台压榨外卖小哥一样的目的。 CPU调度层次 1.高级调度:是作业调度。将外村的作业加载到内存里,分配对应的资源,然后加入就绪队列 2.低级调度:将就绪队列中的进程调度到CPU执行 3.中级调度:为了提高内存的利用率和系统的吞吐量,将暂时不
阅读全文
摘要:性能优化指标 吞吐量 响应速度 并发量 正确率 六大常用优化手段 硬件升级 比如:将机械硬盘升级成固态硬盘之后报警立马消失了,效果立竿见影 缓存化 缓存在很大程度上解决了高频查询问题,针对查询频率很高的应用他的效果是很明显的。但是缓存也会带来很多问题,比如:命中、雪崩、击穿、数据一致等问题; 产品逻
阅读全文
摘要:快慢指针的应用 快慢指针的思想是在进行链表遍历的时候,用两个指针同时指向链头,每次移动的步长不一样。最后的遍历的结果就是,快的已经走完了,慢的还在链表中间的某一个节点上。 使用场景,一次遍历,定位链表中指定位置。这里的位置是相对位置,比如中间位置,三分之二位置,或者是三分之一位置等 判断一个链表是否
阅读全文
摘要:删除无用的connector,因为一般的tomcat前面都会挂有nginx服务 增加connnector使用的线程池的数量 删除没有用的listener host优化项:autoDeploy设置为false;unpackWARS设置为false; executor中:reloadable设置为fal
阅读全文
浙公网安备 33010602011771号