分页场景(limit,offset)为什么会慢
从一个问题说起 五年前在tx的时候,发现分页场景下,mysql请求速度非常慢。数据量只有10w的情况下,select xx from 单机大概2,3秒。 我就问我导师为什么,他反问“索引场景,mysql中获得第n大的数,时间复杂度是多少?”...
从一个问题说起 五年前在tx的时候,发现分页场景下,mysql请求速度非常慢。数据量只有10w的情况下,select xx from 单机大概2,3秒。 我就问我导师为什么,他反问“索引场景,mysql中获得第n大的数,时间复杂度是多少?”...
gin介绍 gin是一个 Web应用框架,拥有良好的性能和简单明了的接口。同时支持中间件,类型绑定等实用功能。 为什么要用gin 在实际开发中,很少会直接实用http.Server。而自己搭建框架有一定成本,同时没有经过系统的校验,容易出现...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
背景 缓存是软件开发中一个非常有用的概念,数据库缓存更是在项目中必然会遇到的场景。而缓存一致性的保证,更是在面试中被反复问到,这里进行一下总结,针对不同的要求,选择恰到好处的一致性方案。 缓存是什么 存储的速度是有区别的。缓存就是把低速存储...
golang实现一个简单的http server 如果搜索golang http server,会发现网上有很多不同的写法,本节将介绍多种写法,并把他们的关系捋清楚。 写法1 直接传入函数 func SayHello(w http.Resp...
背景 微服务场景下需要同步信息的场景。 还是前文的栗子: 如下微服务 支付服务:负责完成支付操作,其中有支付流水数据。 账单服务:指定时间生成账单给用户,其中有账单流水数据。 此时产品上有个需求,在支付管理端根据是否出账搜索支付流水,而出账...
微服务架构 一个应用,拆分为多个小服务,这样的架构方式,就是微服务架构 微服务核心要素 微服务架构实例 我们拿一个电商贷款场景(如京东白条)划分微服务举例,以便后面的描述。 购买场景主要有如下关键服务。 账户服务:负责管理用户基本信息,如姓...
golang 单元测试 单元测试介绍 为了保证代码的质量,很多公司都会要求写单元测试。这里介绍两个指标, 1、 函数覆盖率:函数调用个数/函数个数,通常要求100% 2、 行覆盖率:走到的行的个数/总函数,通常要求>60% 通过单元测试,我...
golang调度模型 模型总揽 核心实体 Goroutines (G) golang调度单元,golang可以开启成千上万个g,每个g可以理解为一个任务,等待被调度。其存储了goroutine的执行stack信息、goroutine状态以及...
mysql简介 mysql是关系型数据库RDBMS(Relational database management system)的典型代表,也是后台开发中打交道最多的一个组件。 go-sql-driver访问数据库 插入操作 func In...
什么是协程栈 每个协程都需要有自己的栈空间,来存放变量,函数,寄存器等信息。所以系统需要给协程分配足够的栈空间。 栈分配方式 固定大小的栈 每个协程都有相同的,固定大小的栈。 优点:实现简单; 缺点:每个协程需要的栈空间不尽相同,如果一概而...