背景
协程A执行过程中需要创建子协程A1、A2、A3…An,协程A创建完子协程后就等待子协程退出。
针对这种场景,GO提供了三种解决方案:
1. Channel: 使用channel控制子协程
2. WaitGroup : 使用信号量机制控制子协程
3. Context: 使用上下[……]
协程A执行过程中需要创建子协程A1、A2、A3…An,协程A创建完子协程后就等待子协程退出。
针对这种场景,GO提供了三种解决方案:
1. Channel: 使用channel控制子协程
2. WaitGroup : 使用信号量机制控制子协程
3. Context: 使用上下[……]
在中国互联网技术圈流传着这么一个说法:MySQL 单表数据量大于 2000 万行,性能会明显下降。
可是,根据以往经验,社交产品,用户互相点赞关注的关系表,数据1亿9千万条且没有进行分表,甚至分区表都没有。[……]
MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。
特别要注意MVCC只在 读已提交(RC) 和 可重复度(RR[……]
索引是一种用于加速查询的数据结构。它可以使得数据库在查找数据时更快地定位到需要的数据。
它是一种特殊的唯一索引,不允许有空值。
一般是在建表的时候同时创建主键索引。
一个表只能有一个主键。
最基本的索引,无任何[……]
宠物门店优惠券业务,同一个优惠券主体,需要同时支持多家门店可用。
在MySQL8以前,一种方案是通过建立关系表记录优惠券ID和门店ID之间的关系;另一种方案是用一个字段然后用特殊字符分隔门店ID(例如:JSON字符串)。
在查询某个门店可以使用的优惠券列表式前一种方案虽然能在查询[……]
在当我们进行模糊查询的时候,一般都是使用 like 关键字来实现,在数据量小的情况下效率确实可以。
有的人会说了,数据量大的时候我加索引啊。确实可以加索引,而且 like condition% 是可以使用到索引的,但是当你要 like %condition% 或 %[……]
MySQL是一个开源的关系型数据库管理系统。它的特点是:
速度快:MySQL是一种高性能、高可靠性的数据库管理系统,可以处理大量的数据。
开源:MySQL是一个开源的数据库管理系统,可以免费使用。
跨平台:MySQL可以运行在多种[……]
社交产品,用户表,用户数据600万条,字段87个(别问为什么这么多,问就是业务需要+祖传屎山);此时需要增加一个geometry类型的字段将用户的经纬度数据存入数据表中并增加空间索引, 且要求必须在原表中新加字段(别杠为什么不开新表,杠就是业务需要)。
机器配置:18核36线程CPU,[……]
先来看看 Memcache 的特点:
Memcache 处理请求时使用多线程异步 IO 的方式,可以合理利用 CPU 多核的优势,性能非常优[……]
分布式锁在以下实际场景中经常需要使用:
缓存同步:在分布式系统中,多个节点共享同一个缓存。当缓存失效时,多个节点可能会同时触发对后端数据源的请求。使用分布式锁可以保证只有一个节点去加载数据到缓存中,避免缓存击穿和缓存雪崩问题,提高系统性能和稳[……]