位运算与&或|异或^左移>\(x\(x>>y=\frac{x}{2^{y}}\)\(2a+1=(a\(a\)%\(2=a\)&\(1\)st表当st表合并的复杂度为\(O(1)\)时,st表构建的复杂度为\(O(nlogn)\),查询的复杂度为\(O(1)\),但是st表并不支持修改。求区间最大值/最小值:复杂度\(O(n)\)st表的核心在于倍增和DP。\(f[i][j]\)表示以第\(i\)个数作为左端点,长度为\(2^{j}\)的区间的最值,也就是\([i,i+2^{j}-1]\)的区间最值。\(f[i][0]=a[i]\)\(f[i][j]=merge(f[i][j-1],f[i+2^
位运算与&或|异或^左移>\(x\(x>>y=\frac{x}{2^{y}}\)\(2a+1=(a\(a\)%\(2=a\)&\(1\)st表当st表合并的复杂度为\(O(1)\)时,st表构建的复杂度为\(O(nlogn)\),查询的复杂度为\(O(1)\),但是st表并不支持修改。求区间最大值/最小值:复杂度\(O(n)\)st表的核心在于倍增和DP。\(f[i][j]\)表示以第\(i\)个数作为左端点,长度为\(2^{j}\)的区间的最值,也就是\([i,i+2^{j}-1]\)的区间最值。\(f[i][0]=a[i]\)\(f[i][j]=merge(f[i][j-1],f[i+2^
changebuffer一块存储了更新操作的缓冲区。它存在于MySQL的bufferpool中。它是怎么作用的:对于普通索引,如果更新操作的目标page页不在内存中,那么会先将这些更新操作记录在changebuffer中。等到select操作将该目标page页查询到内存时会执行更新。这样减少了随机访问磁盘的次数。对于唯一索引,由于执行更新操作时必须先将目标page页读取到内存中判断唯一性,因此没有必要使用该buffer,还能减少维护成本。适用场景:写多读少的场合。多次更新操作,然后同时mergebuffer中的记录,最大限度的利用了一次磁盘访问。如果是普通索引,在更新完之后马上就查询刚插入的那
changebuffer一块存储了更新操作的缓冲区。它存在于MySQL的bufferpool中。它是怎么作用的:对于普通索引,如果更新操作的目标page页不在内存中,那么会先将这些更新操作记录在changebuffer中。等到select操作将该目标page页查询到内存时会执行更新。这样减少了随机访问磁盘的次数。对于唯一索引,由于执行更新操作时必须先将目标page页读取到内存中判断唯一性,因此没有必要使用该buffer,还能减少维护成本。适用场景:写多读少的场合。多次更新操作,然后同时mergebuffer中的记录,最大限度的利用了一次磁盘访问。如果是普通索引,在更新完之后马上就查询刚插入的那
前段时间用三菱PLC完成了个项目,之前一直在使用运动控制器或者单片机做项目,个人确实不是很适应梯形图编程,后来还是决定使用结构化ST编程。三菱编程软件GXWorks2.FX3U系列! 第一次使用基本一直是测试测试在测试。 首先我测试的是创建多个任务,发现可以运行多个任务。下图是测试结果:具体三个任务的优先级我也不清楚 1、我在项目应用中只用了一个任务(task)。下图 2、在项目一个FB块的举例和应用。这个项目基本没有对实时性的要求,所以本着节约的思想用了第三方的IO模块,ModbusRtu通讯,用三菱PLC扩展通讯模块FX3U-485-BD挂了15个IO
前段时间用三菱PLC完成了个项目,之前一直在使用运动控制器或者单片机做项目,个人确实不是很适应梯形图编程,后来还是决定使用结构化ST编程。三菱编程软件GXWorks2.FX3U系列! 第一次使用基本一直是测试测试在测试。 首先我测试的是创建多个任务,发现可以运行多个任务。下图是测试结果:具体三个任务的优先级我也不清楚 1、我在项目应用中只用了一个任务(task)。下图 2、在项目一个FB块的举例和应用。这个项目基本没有对实时性的要求,所以本着节约的思想用了第三方的IO模块,ModbusRtu通讯,用三菱PLC扩展通讯模块FX3U-485-BD挂了15个IO
15445第一阶段笔记+BufferPool(2019)概念page与frame 块,页,是对同一概念的不同叫法,取决于场景不同。其表述的都是磁盘上某一柱面上的连续扇区(固定数目)。数据在磁盘和缓冲区(内存)之间传输,传输的单位就是块(页)。 内存区是以定长的页数组的形式组织的,其中每一个数组条目,被称为一个帧(frame)。当DBMS请求一个页时,被请求页的一份拷贝就被读取进其中一个帧中。 所以,page和frame实际是指的是同一个概念,bufferpool中的叫做帧,磁盘与内存之间的传输单位的叫做page或者block。pagetable 是一个PageID到FrameID的映射
15445第一阶段笔记+BufferPool(2019)概念page与frame 块,页,是对同一概念的不同叫法,取决于场景不同。其表述的都是磁盘上某一柱面上的连续扇区(固定数目)。数据在磁盘和缓冲区(内存)之间传输,传输的单位就是块(页)。 内存区是以定长的页数组的形式组织的,其中每一个数组条目,被称为一个帧(frame)。当DBMS请求一个页时,被请求页的一份拷贝就被读取进其中一个帧中。 所以,page和frame实际是指的是同一个概念,bufferpool中的叫做帧,磁盘与内存之间的传输单位的叫做page或者block。pagetable 是一个PageID到FrameID的映射
这一次我们来分析下muduo中Buffer的作用,我们知道,当我们客户端向服务器发送数据时候,服务器就会读取我们发送的数据,然后进行一系列处理,然后再发送到其他地方,在这里我们想象一下最简单的EchoServer服务器,客户端建立一个连接,以后服务器和客户端之间的通信都是通过这个connfd发送和接受数据,于是每一个connfd都应该有一个自己buffer,当我们发送数据太快,服务器发送的太慢,则服务器会将待发送的数据这个buffer中,所以这就是这个类的作用。我们先看下buffer的结构是什么:我们这里主要针对connfd这个对应的channel进行分析,首先上图是buffer的初始状态,前
这一次我们来分析下muduo中Buffer的作用,我们知道,当我们客户端向服务器发送数据时候,服务器就会读取我们发送的数据,然后进行一系列处理,然后再发送到其他地方,在这里我们想象一下最简单的EchoServer服务器,客户端建立一个连接,以后服务器和客户端之间的通信都是通过这个connfd发送和接受数据,于是每一个connfd都应该有一个自己buffer,当我们发送数据太快,服务器发送的太慢,则服务器会将待发送的数据这个buffer中,所以这就是这个类的作用。我们先看下buffer的结构是什么:我们这里主要针对connfd这个对应的channel进行分析,首先上图是buffer的初始状态,前