2022年1月5日

mysql 5.6 inner join and 慢优化

摘要: 慢示例: SELECT o.id FROM o_schoolnotice o INNER JOIN o_schoolnotice_parent p ON o.id = p.noticeid AND p.parenttype = 3 AND p.parentid = 129137 WHERE o.st 阅读全文

posted @ 2022-01-05 16:40 biwentao 阅读(670) 评论(0) 推荐(0) 编辑

2021年12月30日

gorm 使用不规范导致Mysql连接泄露的操作

摘要: 事务开启请一定要提交或者回滚。否则就会使用一次导致mysql连接加1。 如下: db.Begin() 请一定要接受返回值并提交或者回滚事务。 如果是使用gorm老版本的每次return后都需要回滚这种情况,可以参考新版本的闭包封装提交。 就算是panic也一定能够保证回滚事务。如下: func (d 阅读全文

posted @ 2021-12-30 09:35 biwentao 阅读(750) 评论(0) 推荐(0) 编辑

2021年12月22日

gossh nohup部署退出解决方法

摘要: ssh 会话远程nohup ./node> node.out & 执行指令,会话退出以后也会导致服务并没有部署成功。 应该使用以下命令:nohup ./node > node.out 2>&1 & 阅读全文

posted @ 2021-12-22 10:39 biwentao 阅读(191) 评论(0) 推荐(0) 编辑

2021年11月13日

redis 使用lua脚本 一次性获取多个hash key 字段值

摘要: 客户端命令行代码: eval "local rst={};local field='schoolid'; for i,v in pairs(KEYS) do rst[i]=redis.call('hget', v, field) end; return rst" 2 b_student:1271 b 阅读全文

posted @ 2021-11-13 18:03 biwentao 阅读(3964) 评论(0) 推荐(0) 编辑

2021年10月28日

根据raft协议动画总结raft协议的特点

摘要: raft动画地址 1. 1事务提交的时候如果已经被一台follower(A)获取到了,此时leader(L)挂掉,然后其它follower跟A一起选举leader基本上都是A会被选举成功,然后不管1事务是否被一半机器提交成功, 下次事务进来时1事务都会跟着一起提交,如果1事务提交时A也挂掉了,并且新 阅读全文

posted @ 2021-10-28 17:10 biwentao 阅读(108) 评论(0) 推荐(0) 编辑

2021年8月11日

json 编码后导致数字变为科学计数,从而导致解码后签名与编码前签名不正确的解决办法。

摘要: docoder := json.NewDecoder(strings.NewReader(string(originData))) docoder.UseNumber() _ = docoder.Decode(&targetData) 直接解码的时候就禁用科学计数法 阅读全文

posted @ 2021-08-11 11:22 biwentao 阅读(516) 评论(0) 推荐(0) 编辑

2021年5月7日

golang http client 长连接vs短连接基准测试

摘要: package main import ( "io/ioutil" "net/http" "strings" "testing" ) func KeepAlive(client *http.Client) { req, err := http.NewRequest("GET", "http://lo 阅读全文

posted @ 2021-05-07 14:32 biwentao 阅读(713) 评论(0) 推荐(0) 编辑

2021年4月27日

golang 无向简单图邻接多重表

摘要: package main import "fmt" type MultipleEdgeNode struct { iVex int iLink *MultipleEdgeNode jVex int jLink *MultipleEdgeNode } type MultipleVertexNode s 阅读全文

posted @ 2021-04-27 23:29 biwentao 阅读(98) 评论(0) 推荐(0) 编辑

2021年4月26日

go 有向简单图 十字链表

摘要: package main import "fmt" type CrossEdgeNode struct { tailVex int // 尾顶点 headVex int // 头顶点 headLink *CrossEdgeNode // 头顶点链表 tailLink *CrossEdgeNode / 阅读全文

posted @ 2021-04-26 23:37 biwentao 阅读(131) 评论(0) 推荐(0) 编辑

2021年4月12日

golang kmp算法实现

摘要: // 不多逼逼直接上代码。原理的话可以参考下面的链接。讲的非常清晰package main import "fmt" func genNext(s string) []int { sLen := len(s) next := make([]int, sLen) c := 0 d := -1 next 阅读全文

posted @ 2021-04-12 01:58 biwentao 阅读(252) 评论(0) 推荐(0) 编辑

导航