1.GO111MODULEGO111MODULE为off时go编译程序的查找依赖的顺序gopathgoroot,为on时,会读取当前项目的go.mod.文件,在go.mod文件中会记录有哪些依赖
1.gitstatus查看分支的状态2.gitcheckout切换分支b新建一个分支file撤销文件or目录下的修改3.gitbranch查看本地分支a查看所有分支4.gitreset回滚HEADfile把文件回滚到修改前hardHEAD^回滚到上一个版70941a783回滚到指定版本号5.gitstash保存修改到缓存区gitstashpop取出6.gitconfig设置全局configglob
1、explain的12个字段id:sql语句的编号如果是连接查询表之间是平级关系就是id相同,从上向下查询如果是子查询就id递增,id越大,优先级越高select_type:查询的类型SIMPLE简单的select查询,不包含字查询或UNIONPRIMARY含子查询或派生查询SUBQUERY非FROM子查询SELECTFROMtestwhereid=(SELECTidFROMtestwherei
二、查询优化5、优化查询语句1、用JOIN替代子查询(不创建tmptable)2、子查询(创建tmptable),避免表锁死3、不要多余的字段4、相同类型来比较5、在使用索引的字段上,尽量不用函数6、尽量不要用LIKE和通配符,能用代码解决的,尽量不用联表查询6、使用UNION来代替手动创建的临时表7、事务的使用1、尽量不要使用事务2、事务会锁库,尽量用锁表的方式做事务1、索引与查询1:索引类型1
1.索引的类型1.主键索引(唯一索引的特殊类型)2.唯一索引3.普通索引4.联合索引2.索引碎片修复1、altertablet_nameenginemyisam;2、optimizetablet_name修复表的数据及索引碎片,就会把所有的数据文件重新整理一遍,使之对齐.这个过程,如果表的行数比较大,也是非常耗费资源的操作.所以,不能频繁的修复.3、选择合适的存储引擎:InnoDB分裂对于Inno
1.表结构大致遵循3NF范式原则:html1、1NF字段原子性2、2NF字段直接依赖全部主键3、3NF字段不要依赖非主键4、4NF(很少用到)4、逆范式:空间换时间,字段冗余2.表横向拆分,常用和非常用字段分离:核心字段放一张表、尽量使用定长字段(int,char,enum)非核心字段、text、超长varchar放另外一张表3.选择合适字段
1.Mysql优化思路:分成服务优化,表结构优化,索引优化,查询优化2.服务优化:监控Mysql的锋值是否是有规则的波动showstauts查看Mysql的运行状态第三方插件记录运维脚本监控3.有规则的波动解决方案,加缓存更改缓存失效策略:1、分散失效时间;2、夜间定时失效4.无规则波动4.1开启慢查询slow_query_log=onslow_query_log_file=/slow_query
1.找到usr/local/Homebrew/Library/Taps/homebrew/homebrewcore/Formula/php@7.3.rb文件2.注释!image.png(https://s2.51cto.com/images/20220303/1646319078645376.png?xossprocess=image/watermark,size_14,text_QDUxQ1RP
1.docker是基于Go语言开发实现的开源的容器应用。2.docker实现了把应用封装在一个容器(镜像)里,做到了一次封装,多个环境运行。用来解决运行环境和配置的软件容器,在不同环境无法运行的问题。3.docker的三大要素:镜像、仓库、容器。4.
1.redis的set是string的无序集合,底层是HashTable结构,set的元素是无序的,且不能重复2.saddkeymember添加一个value到集合key中,已经存在于集合的member元素将被忽略。返回插入的元素个数3.sismemberkeymember判断member是否在集合内,是返回1,否返回04.smemberskey查看所有元素5.spopkey移除一个随机元素并返回
1.lpush(rpush)keyvaluevalue...把一个数据从左边(右边)插入list的表头,多个value按从左到右的顺序返回列表的长度2.lrangekeystartstop获取整个list从左到右开始读取,0表示第一个元素,1表示最后一个元素3.lpop(rpop)keycount从列表左边(右边)起取出count个元素4.lpushx(rpushx)keyvalue只有key存在
1.缓存穿透:大量访问不存在的key,然后访问到DB读取数据1.对于不存在的key,设置一个null值,等有真正的key的时候再设置真的值。2.布隆过滤器,将所有可能存在的数据,放到一个map中(数据只保留有需要的,比如ID,探索条件),不存在的数据直接按错误处理2.缓存击穿:大量访问请求同一个key,key失效后,大量请求到DB当这个key失效后,给这个key加锁,第一个获取到锁的请求,去请求D
1.hash是一个键值对的集合2.hash是一个string类型的field和value的映射表3.hash特别适合储存对象4.hset设置一个hash,返回成功的field个数hsetkeyfield1value1field2value2fieldNvalueN5.获取一个hashhgetallkey6.获取一个hash的fieldhgetkeyfield7.删除一个fieldhdelkeyfi
String类型最大可以达到512Mstring类型是二进制安全的。意思是redis可以包含任何数据。比如序列化的对象进行存储,比如一张图片进行二进制存储.再比如一个简单的字符串,数值等等1.setkeyvalueEX秒PX毫秒EXAT时间戳PXAT毫秒时间戳KEEPTTLNXXXGETKEEPTTL:保留设置前指定键的生存时间NX仅在键不存在时设置键。XX只有在键已存在时才设置。GET:返回指定
1.查看数据库个数configgetdatabases2.切换数据库selectdbindex3.查看当前数据库keyvalue个数dbsize4.查看所有keykey5.查看单个keygetkey6.设置单个keysetkeyvalue7.清空当前库flushdb8.清空所有库flushall9.鉴权auth
1.单元测试文件必须以_test.go结尾2.测试用例函数必须以Test开头,一般来说是Test+被测试的函数名3.形参类型必须是(ttesting.T)4.gotestv,输入日志。不加v只会输出错误的日志5.t.Fatalf()输出格式化错误日志6.t.Logf()输出相应日志7.测试命令go//测试所有文件gotestv//测试单个文件gotestvcal_test.gocal.go//测试
1.并发vs并行go1.并发:多线程程序在单核上运行,同一时间只会执行一个线程。2.并行:多线程程序在多核上运行,在不同的cpu核心上同时执行多个线程。
1、相同点:(a)二者都具有ID,一组寄存器,状态,优先级以及所要遵循的调度策略。(b) 每个进程都有一个进程控制块,线程也拥有一个线程控制块。(c) 线程和子进程共享父进程中的资源;线程和子进程独立于它们的父进程,竞争使用处理器资源;线程和子进程的创建者可以在线程和子进程上实行某些控制,比如,创建者可以取消、挂起、继续和修改线程和子进程的优先级;线程和子进程可以改变其属性并创建新的资源。2、不同
01进程和线程介绍先说说进程和线程,进程是操作系统资源分配的最小单元,是程序执行的一个实例。在程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程的就绪队列,这样进程调度器选中它的时候就会为它分配CPU时间片。进程的状态有:新建态、就绪态、运行态、阻塞态、退出态,状态之间可以进行转换:就绪->运行,运行->就绪,运行->阻塞,阻塞->就绪新建态:新建态进程刚
1.流:数据在数据源(文件)和程序(内存)之前的经历的路径。2.os.open()//打开一个文件3.file.Close()//关闭文件4.reader:=bufio.NewReader(file)//读取文件内容到缓冲区5.io.EOF//文件结束符号
1.sort.ints()//对一个int型的数组/切片进行排序
1.接口go//接口的定义typeXXXinterface{method1(args...)intmethod2(args...)bool}a.go的接口只能定义一些未实现的方法,不能定义属性b.接口的设计体现了高内聚低耦合的特性。c.go中接口不需要显式实现,不用implement关键字,d.只要结构体实现了接口的所有方法,调用接口时自动实现。
1.fmt.Scanf(format,args)2.fmt.Scanln(args)
1.defer关键字godeferxxx//会把一条语句压入到一个栈//函数执行完毕后会先入后出的顺序执行。//通常用来执行资源的释放(文件读取、数据库连接)file:=open("file.txt")deferfile.close()2.函数的参数go1)两种传递参数方式,值传递:拷贝变量副本2)引用传递:拷贝变量的地址,效率更高
1.声明变量govara,bstrings,sep:="",""2.输出gofmt.Println(i)//换行输出fmt.3.for循环gofor_,arg:=rangeos.Args1:{}4.字符串操作gostrings.Join(os.Args0:,"+")//字符串连接5.网络请求goresp,err:=http.Get(url)//获取一个网页
1.实现vue前端路由的两种方式:2.改变location.hash3.history,pushState(obj,data,url)4.history.replaceState()5.history.go()6.history.back()7.history.forward()8.routerlink是vue内置标签,它会被渲染成一个a标签bashlinkActiveClassn属性:改变rou
1.安装webpack项目环境bashnpminstallwebpacksavedev2.安装css的loaderbashnpminstallsavedevcssloader3.安装style的loaderbashnpminstallsavedevstyleloader
1.printf("%d__%s__%.2f",8,"不全等于",8.0),输出到浏览器2.sprintf功能和printf相同,返回一个字符串,可以用变量接收3.
1.‘000’:true2.'0':false3.2=2/33:false4.4/2=2:true5.isset和emptyhtmla=0;isset(a):true,isset()判断定义了变量,是否堆栈有值a=null;isset(a):falsea='0';empty(a):true,判断变量是否为空值。6.a=9;b=&a;unset(b);a=97.
pg_restorehost127.0.0.1port5432username"XXX"dbname"XXX"noprivilegesnotablespacesnoownerschema"XXX"verbose"xxx.sql"
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号