
软件工程
runscript.sh
From USTC.edu.cn,Work PDD.Co.Ltd
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
redhat server 7.4(maipo)配置阿里云
8.在 /etc/yum.repos.d 这个目录下面会出现CentOs-Base.repo这个文件。双击进入然后点击搜索并替换版本。这些是要替换的在替换为输入7,然后全部替换。3.一次性全部删除系统自带的官方yum源。输入:$releasever 点击查找。6.查看一下Yum源是否有安装。2.查看自己的yum源。4.下载国内Yum源。转载 2023-06-10 11:23:15 · 467 阅读 · 0 评论 -
Linux系统编译Zookeeper源码
【代码】Linux系统编译Zookeeper源码。原创 2022-10-12 21:18:58 · 959 阅读 · 0 评论 -
Linux用户没有sudo权限
添加一行:book ALL=(ALL) ALL。1 问题:Linux用户没有sudo权限。其中:book为我的用户名;原创 2022-10-10 17:59:02 · 2330 阅读 · 0 评论 -
centos7安装 kubernetes
OPTIONS 内容设置为 :OPTIONS=‘–selinux-enabled=false --insecure-registry gcr.io’把 --admission_control参数中的 ServiceAccount删除。原创 2022-10-10 17:22:49 · 279 阅读 · 0 评论 -
数据库保持无损连接性判断
设有关系模式R(U,V,W,X,Y,Z),其函数依赖集:F={U→V,W→Z,Y→U,WY→X},现有下列分解:ρ={UVY,WXYZ}Y → UV 或 Y → WXZ 至少有一个成立。R1∩R2→R1-R2或R1∩R2→R2-R1。根据 F={U→V,W→Z,Y→U,WY→X}R(UVY) ∩ R(WXYZ) 得出 Y,得出: Y→U, U→V即 Y → UV成立。但Y → UV 成立 ,即可判断为无损连接。Y → WXZ 无法推出;R1-R2 得出 UV,当分解ρ只有两组的时候。原创 2022-09-26 08:48:39 · 2714 阅读 · 0 评论 -
数据库属性集闭包F+
关系模式R的属性集U={A,B,C,D,E},F={A→B, B→C, D→E}是R上的函数依赖集,设α={A,E},属性A根据函数依赖F能得到闭包a+ = {A,B,C,E}我们称在函数依赖集F下由α函数确定的所有属性的集合为F下α的闭包,记为α+。简单说 : 闭包就是由一个属性集直接或间接推到出的所有属性的集合。原创 2022-09-26 08:41:07 · 2840 阅读 · 0 评论 -
k8s named Kubernetes
在Kubernetes系统中,调度的最小颗粒不是单纯的容器,而是抽象成一个Pod,Pod是一个可以被创建、销毁、调度、管理的最小的部署单元。节点是一个物理机或虚拟机,上面运行着Kubernetes,它上面的Pod可以被调度。它可以确保给定数量的Pod在给定的时间范围运行,且可以创建或杀死Pod。集群是一组物理机或虚拟机,用于让Kubernetes运行应用程序的。服务为一组Pod提供了单一的、稳定的名字和地址,是负载均衡器的基础。标签用于组织和选择对象组,通过键值对的方式。比如一个或一组共享卷的容器。原创 2022-09-20 17:30:13 · 360 阅读 · 0 评论 -
MySQL @和@@符号的详细使用说明
MySQL at(@) and @@(at at)获取用户定义变量值方式,如:2 系统变量查看全部系统变量指令查看单个系统变量设置系统变量语法如:注:如果修改变量值后没有生效,请退出从新再试下 。转载 2022-09-20 15:54:44 · 1219 阅读 · 0 评论 -
TPCC之MySQL协议开启prepare cache
【代码】Prepared Statements。原创 2022-09-15 19:27:37 · 126 阅读 · 0 评论 -
PreparedStatement的Batch功能
即使是相同操作但因为数据内容不一样,所以整个个语句本身不能匹配,没有缓存语句的意义.事实是没有数据库会对普通语句编译后的执行代码缓存.这样每执行一次都要对传入的语句编译一次.而如果你使用预编译语句.你传入的任何内容就不会和原来的语句发生任何匹配的关系.(前提是数据库本身支持预编译,但上前可能没有什么服务端数据库不支持编译了,只有少数的桌面数据库,就是直接文件访问的那些)只要全使用预编译语句,你就用不着对传入的数据做任何过虑.而如果使用普通的statement, 有可能要对drop,;转载 2022-09-15 17:41:06 · 2714 阅读 · 0 评论 -
第一代系统调用指令过程
执行哪段程序呢,要根据中断源来决定,不同的中断源执行不同的程序,每个中断源都对应一个整数来标识自己,这个整数就叫做中断向量。我们的系统调用就是利用指令中断,用向量号0x80,也就是十进制的128当做自己的中断向量,来执行系统调用的。,CPU就会跳转到内核执行内核预先设定的中断处理程序(也就是系统调用入口函数)。入口函数再执行iret返回到用户空间,一个系统调用就完成了。中断源有三类,外设中断、CPU异常、指令中断。指令中断是在指令的操作数里面指定中断向量号的。第一代系统调用指令使用的是中断指令,...转载 2022-08-28 15:21:10 · 150 阅读 · 0 评论 -
系统调用机制的基本原理
此时CPU就会切换到特权模式,并进入内核执行一段预先设定的代码(系统调用入口函数),这段代码会根据系统调用编号调用相应的系统调用函数。需要说明的是,一个平台提供的系统调用指令不一定只有一个,不同系统调用指令对应的系统调用入口函数也不相同。这样系统调用入口函数才能根据系统调用编号找到正确的系统调用函数。答案是要靠CPU提供的特殊指令(系统调用指令)来实现,然后,调用特殊指令(系统调用指令),二是系统调用入口函数要提前设置好。一是系统调用编号要能对应上,首先,往某个寄存器写入系统。统调用机制该怎么实现呢?...转载 2022-08-28 15:14:48 · 334 阅读 · 0 评论 -
MySQL索引之全文索引(FULLTEXT)缺陷
全文索引的缺陷:1 数据表越大,全文索引效果好,比较小的数据表会返回一些难以理解的结果。2 全文检索以整个单词作为匹配对象,单词变形(加上后缀,复数形式),就被认为另一个单词。3 只有由字母,数字,单引号,下划线构成的字符串被认为是单词,带注音符号的字母仍是字母,像C++不再认为是单词4 不区分大小写5 全文索引创建速度慢,而且对有全文索引的各种数据修改操作也慢.........原创 2022-06-17 14:52:06 · 3410 阅读 · 0 评论 -
数据库之全文索引(FULLTEXT)分类
全文索引(FULLTEXT)分为:1、布尔全文搜索,指定了IN BOOLEN MODE模式2、自然语言全文搜索,是MySQL全文搜索的默认搜索方式,实现从一个文本集合中搜索给定的字符串。可以指定 IN NATURAL LANGUAGE MODE......原创 2022-06-17 14:31:33 · 1724 阅读 · 0 评论 -
MySQL数据库之InnoDB引擎之全文索引(FULLTEXT)之自然语言全文搜索样例
自然语言全文搜索(IN NATURAL LANGUAGE MODE)原创 2022-06-17 14:18:58 · 350 阅读 · 0 评论 -
MySQL索引之全文索引(FULLTEXT)之布尔全文搜索
布尔全文搜索(IN BOOLEAN MODE)布尔全文搜索的性能支持以下操作符:原创 2022-06-17 12:24:06 · 560 阅读 · 0 评论 -
MySQL索引之全文索引(FULLTEXT)之创建和删除
建立全文索引,不要在建表时候创建,而是应该在插入数据完成后,再建立全文索引。插入数据创建全文索引方法1:方法2:删除索引方法1:直接使用 drop index(注意:没有 drop fulltext index 这种用法)方法2:使用 alter table的方式...原创 2022-06-17 11:58:58 · 1664 阅读 · 0 评论 -
MySQL索引之全文索引(FULLTEXT)之In boolean mode
全文索引Fulltext,输出结果比较特殊50%的门坎限制(当查询结果很多,几乎所有记录都有,或者极少的数据,都有可能会返回非所期望的结果)可用即可以避开50%的限制。此时使用全文索引的格式就变成了:...原创 2022-06-17 11:34:25 · 1271 阅读 · 0 评论 -
MySQL数据库之全文索引fulltext之设置条件
默认存储引擎InnoDB不支持全文索引(新版本MYSQL5.6的InnoDB支持全文索引)原创 2022-06-16 20:48:42 · 321 阅读 · 0 评论 -
MySQL数据库之内置插件列表
MySQL自带插件列表:1、半同步插件原创 2022-05-27 11:14:21 · 750 阅读 · 0 评论 -
分布式数据库之火山模型
概念火山模型又叫迭代器模型。IO墙效应在90年代早期,计算机的内存资源十分昂贵,相对于CPU的执行效率,IO效率要差得多,因此运算符和存储之间的IO交换是影响查询效率的主要因素(IO墙效应)。火山模型将更多的内存资源用于IO的缓存设计而 没有优化CPU 的执行效率是在当时的硬件基础上很自然的权衡。火山模型设计思路将关系代数当中的每一个算子抽象成一个迭代器。每个迭代器都带有一个 next 方法。每次调用这个方法将会返回这个算子的产生的一行数据(或者说一个 Tuple)。程序通过在转载 2022-05-26 17:45:24 · 2365 阅读 · 0 评论 -
分布式数据库之算子
1 概念Scan算子作用是读取数据源的具体数据。例如: select * from t 就是读取t表中的数据。Selection算子作用是处理Sql中的谓词条件。例如: select xxx from t where xx = 5 里面的 where 过滤条件就是Selection算子处理的。Projection算子作用是物理执行器计算出的数据传递给外部。例如: select c from t 中 Projection算子是输出C列中的数据。Join算子作用是计算两个表的连接转载 2022-05-26 16:57:54 · 803 阅读 · 0 评论 -
MySQL数据库之InnoDB存储引擎之MTR
1 MTR(mini-transaction) 微事务在MySQL的 InnoDB日志管理机制中,有一个很重要的概念就是MTR。MTR是InnoDB存储擎中一个很重要的用来保证物理写的完整性和持久性的机制。2 MTR在MysQL架构中的位置MTR是上面的逻辑层与下面物理层的交互窗口3 MTR作用主要保证物理操作的一致性和原子性;同时也是用来保证下层物理数据正确性、完整性及持久性的机制。...原创 2022-05-20 21:25:03 · 845 阅读 · 0 评论 -
MySQL数据库之InnoDB存储引擎特性之两次写优点
提高innodb的可靠性,用来解决部分写失败(partial page write页断裂)。对象为:页(page,块);1、Double write解决了什么问题一个数据页的大小是16K,假设在把内存中的脏页写到数据库的时候,写了2K突然掉电,也就是说前2K数据是新的,后14K是旧的,那么磁盘数据库这个数据页就是不完整的,是一个坏掉的数据页。redo只能加上旧、校检完整的数据页恢复一个 脏块,不能 修复 坏掉的数据页,所以这个数据就丢失了,可能会造成数据不一致,所以需要double write。原创 2022-05-18 17:21:52 · 196 阅读 · 0 评论 -
MySQL数据库之InnoDB存储引擎特性之两次写
两次写,都只磁盘:1、顺序写; 备份,恢复使用;保证异常宕机时,数据完整性;2、离散写; 数据持久化;原创 2022-05-18 17:15:54 · 235 阅读 · 0 评论 -
MySQL数据库之InnoDB存储引擎特性之两次写关闭场景
关闭double write适合的场景1、海量DML(insert,update,delete)2、不惧怕数据损坏和丢失3、系统写负载成为主要负载mysql> show variables like '%double%';+--------------------+-------+| Variable_name | Value |+--------------------+-------+| innodb_doublewrite | ON |+--------------------转载 2022-05-18 17:09:00 · 227 阅读 · 0 评论 -
MySQL数据库之InnoDB存储引擎特性之两次写弊端
double write带来的写负载1、double write是一个buffer, 但其实它是开在物理文件上的一个buffer, 其实也就是file, 所以它会导致系统有更多的fsync操作, 而硬盘的fsync性能是很慢的, 所以它会降低mysql的整体性能。2、但是,doublewrite buffer写入磁盘共享表空间这个过程是连续存储,是顺序写,性能非常高,(约占写的10%),牺牲一点写性能来保证数据页的完整还是很有必要的。监控double write工作负载mysql> s.转载 2022-05-18 17:05:23 · 162 阅读 · 0 评论 -
MySQL数据库之InnoDB存储引擎特性之两次写崩溃恢复
如果操作系统在将页写入磁盘的过程中发生崩溃,在恢复过程中,innodb存储引擎可以:1 、从磁盘上的共享表空间的doublewrite中,找到该页的一个最近的副本;2 、将其复制到表空间文件;3 、再应用redo log,就完成了恢复过程。因为有副本所以也不担心表空间中数据页是否损坏。Q:为什么log write不需要doublewrite的支持?A:因为redolog写入的单位就是512字节,也就是磁盘IO的最小单位,所以无所谓数据损坏。...转载 2022-05-18 17:00:17 · 319 阅读 · 0 评论 -
MySQL数据库之InnoDB存储引擎特性之两次写工作流程
两次写工作流程doublewrite(两次写)由两部分组成:一部分为内存中的doublewrite buffer,其大小为2MB,另一部分是磁盘上共享表空间(ibdata x)中连续的128个页,即2个簇(extent,区),大小也是2M。1、当一系列机制触发数据缓冲池中的脏页刷新时,并不直接写入磁盘数据文件中,而是先拷贝至内存中的doublewrite buffer中;2、接着从两次写缓冲区分两次写入磁盘共享表空间中(连续存储,顺序写,性能很高),每次写1MB;3、待第二步完成后,再将内存中转载 2022-05-18 16:55:44 · 207 阅读 · 0 评论 -
MySQL数据库之两次写占用2MB
两次写需要用到两个簇(区,extent),每个簇管理64个页面(块),页面大小16KB所以,2x64x16KB=2MB原创 2022-05-18 10:36:20 · 155 阅读 · 0 评论 -
数据库技术之回表
回表:从一张表的二级索引回到聚簇索引,查找所有需要数据的过程;二级索引覆盖所有需要的数据,则二级索引为:覆盖索引;否则,非覆盖索引,此时执行“回表”;原创 2022-05-15 09:53:08 · 709 阅读 · 0 评论 -
数据库技术之二级索引
一张表,除了聚簇索引以外的索引,都是二级索引(secondary index);二级索引,又称为:辅助索引;一张表,二级索引可以有多个,没有上限;原创 2022-05-15 09:39:29 · 2012 阅读 · 0 评论 -
数据库技术之聚簇索引
一张表中,有一个索引,指向了该表的所有数据,则为:聚簇索引(clustered Index);聚簇索引可以为下列之一:1、用户自建的主键(不能含NULL);2、隐含的rowid;3、自增列;通过聚簇索引可以:1、查找到该表的所有数据;2、唯一性;...原创 2022-05-15 09:36:50 · 451 阅读 · 0 评论 -
Golang 笔试题之正则表达式regexp示例输出结果
Golang 内置了(regexp包)对正则表达式的支持。示例:package mainimport ( "bytes" "fmt" "regexp")func main() { //是否匹配字符串 // .匹配任意一个字符 ,*匹配零个或多个 ,优先匹配更多(贪婪) match, _ := regexp.MatchString("H(.*)d!", "Hello World!") fmt.Println(match) //true转载 2022-05-05 15:37:14 · 315 阅读 · 0 评论 -
数据库技术之MVCC的实现原理 之 隐式字段
MVCC的目的就是:多版本并发控制,在数据库中的实现,就是为了解决读写冲突它的实现原理主要是:依赖记录中的 3个隐式字段,undo日志 ,Read View 来实现的。所以,我们先来看看这个三个point的概念。1 隐式字段每行记录除了我们自定义的字段外,还有数据库隐式定义的DB_TRX_ID,DB_ROLL_PTR,DB_ROW_ID等字段。DB_TRX_ID6 byte,最近修改(修改/插入)事务ID:记录创建这条记录/最后一次修改该记录的事务IDDB_ROLL_PTR7原创 2022-04-29 22:14:14 · 1289 阅读 · 0 评论 -
数据库技术之面试题:MVCC应用
MVCC能解决什么问题,好处是?1 数据库并发场景有三种,分别为:读-读:不存在任何问题,也不需要并发控制读-写:有线程安全问题,可能会造成事务隔离性问题,可能遇到脏读,幻读,不可重复读写-写:有线程安全问题,可能会存在更新丢失问题,比如第一类更新丢失,第二类更新丢失2 MVCC应用多版本并发控制(MVCC)是一种用来解决读-写冲突的无锁并发控制,也就是为事务分配单向增长的时间戳,为每个修改保存一个版本,版本与事务时间戳关联,读操作只读该事务开始前的数据库的快照。3 MVCC为数据库解决的问原创 2022-04-29 17:17:04 · 843 阅读 · 0 评论 -
数据库技术(MVCC)之 面试题 当前读 & 快照读
在学习MVCC多版本并发控制之前,必须先了解,什么是MySQL InnoDB下的当前读和快照读?1 当前读示例:select lock in share mode(共享锁), select for update ; update, insert ,delete(排他锁)这些操作都是一种当前读为什么叫当前读?就是它读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁2 快照读不加锁的select操作就是快照读,即不加锁的非阻塞读;快照读的前提是隔离级原创 2022-04-29 16:46:45 · 1170 阅读 · 0 评论 -
数据库技术之MVCC
MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。MVCC在MySQL InnoDB中的实现,主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读。...原创 2022-04-29 11:08:53 · 601 阅读 · 0 评论 -
Golang之面试题&智力题
问题1:一个猴子在一座n级的山脚准备爬山,猴子上山一步可跳1级或3级,试问爬到第n阶台阶,共有多少种不同的爬法?//简单递推设计这一问题实际上是一个整数有序可重复拆分的问题。试应用数组递推求解,设爬k级台阶的不同爬法为f(k)种。探求f(k)的递推关系上山最后一步到达第30级台阶,完成上山,共有f(30)种不同的爬法,到第30级之前位于哪一级呢?无非就是位于第29级(上跳1级即可到),有f(29)种;或者位于第27级(上跳3级即可到),有f(27)种;于是f(30)=f(29)+f(27)依次类推转载 2022-04-23 13:07:54 · 176 阅读 · 0 评论 -
golang之笔试题&面试题01
就是几个简单的笔试题目,也可能面试的时候直接给看让说结果。1, 用不同的goroutine去操作map的时候会存在线程同步的问题,把map换成int ,这个问题同样存在。在go里是这样。2,下面这段代码输出的值为: func (){ jsonStr:=[]byte(`{"age":1}`) var value map[string]interface{} json.Unmarshal(jsonStr,&value) age:=value["age"] f转载 2022-04-23 09:33:30 · 963 阅读 · 0 评论