摘要: 生成间隙(gap)锁、临键(next-key)锁的前提条件 是在 RR 隔离级别下。 1、当使用唯一索引来等值查询的语句时, 如果这行数据存在,不产生间隙锁,而是记录锁。 2、当使用唯一索引来等值查询的语句时, 如果这行数据不存在,会产生间隙锁。 3、当使用唯一索引来范围查询的语句时,对于满足查询条 阅读全文
posted @ 2022-11-09 21:46 Tracydzf 阅读(1606) 评论(0) 推荐(1) 编辑
摘要: type User struct { Id int Name string } type option func(*User) func (u *User) Option(opts ...option) { for _, opt := range opts { opt(u) } } func Wit 阅读全文
posted @ 2022-11-08 21:15 Tracydzf 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 时间类型转换 在sqldb/*.go中的时间类型为: 1 type name struct { 2 CreateDate *time.Time `sql:"CreateDate"` 3 } 以上对应数据库中的字段类型为DateTime 在doctor/*.go中的时间类型为: type name s 阅读全文
posted @ 2022-10-21 09:37 Tracydzf 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 下面定义了一个全局的error,通常error变量命名以Err开头,后面是错误类型. 哨兵error期望描述的是一个预期的错误,下面以SQL库为例进行说明。 import "errors" var ErrFoo = errors.New("foo") 设计一个查询数据库的Query方法,该方法返回结 阅读全文
posted @ 2022-06-21 22:53 Tracydzf 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 介绍了可以通过%w对error进行wrap。但是一旦对error通过%w进行包装,后续在对包装后的error通过type进行判断的时候,必须采用合适的方法,否则将会出错。 下面通过一个具体的HTTP handler例子进行说明,该例功能是查询某个给定账号的交易金额。handler处理逻辑是从请求中获 阅读全文
posted @ 2022-06-21 22:26 Tracydzf 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 通常来说,有以下两种场景需要对error进行包装. 向error中添加上下文信息 将error转为一个特定的error 作者对上面的场景各举了一个例子进行说明。对需要向error中添加上下文信息的情况,以数据库操作为例,某个角色身份的人请求数据库操作,但是它没有查询权限,当它在查询的时候会返回一个没 阅读全文
posted @ 2022-06-21 22:06 Tracydzf 阅读(197) 评论(0) 推荐(0) 编辑
摘要: panic会终止代码执行逻辑 panic语句会终止代码执行,即fmt.Println("b")不会被执行. func main() { fmt.Println("a") panic("foo") fmt.Println("b") // panic之后的内容不会输出,类似于linux中的exit函数功 阅读全文
posted @ 2022-06-21 09:56 Tracydzf 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 查询 唯一索引 这里我们以下面的语句为例子进行介绍:这里的card_id就是唯一索引 select * from t_user where card_id = 142733 当InnoDB引擎查询到第一条符合条件的记录时就会返回,因为唯一索引保证了字段的唯一性; 普通索引 这里我们以下面的语句为例子 阅读全文
posted @ 2022-04-16 10:56 Tracydzf 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 面试的时候被问到这个?当时不会。现在总结一下 普通索引和唯一索引 选择普通索引还是唯一索引,需要从查询和更新两方面考虑。 1. 查询操作 索引上的查询,是从根结点开始,按层搜索到叶子节点,即所谓的数据页,然后在数据页内部使用二分法定位记录。 对于普通索引,先查找到满足条件的第一个记录,然后查找下一个 阅读全文
posted @ 2022-04-14 18:16 Tracydzf 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 一、什么是rbacrbac翻译意思就是(Role-Based Access Contro)基于角色的权限控制 二、优势1.将用户和权限的关系2.易扩展,易于维护 比如张三李四需要用客户列表访问权限,如果上百个用户,单独分配权限会麻烦,如果单独放客户列表权限在销售角色里面,张三李四放到销售角色里就OK 阅读全文
posted @ 2022-02-10 23:34 Tracydzf 阅读(807) 评论(0) 推荐(0) 编辑