什么是索引?

索引是一种用于加速查询的数据结构。它可以使得数据库在查找数据时更快地定位到需要的数据。

索引的类型

1. 主键索引

它是一种特殊的唯一索引,不允许有空值。
一般是在建表的时候同时创建主键索引。
一个表只能有一个主键。

2. 普通索引

最基本的索引,无任何[……]

继续阅读

背景

宠物门店优惠券业务,同一个优惠券主体,需要同时支持多家门店可用。

在MySQL8以前,一种方案是通过建立关系表记录优惠券ID和门店ID之间的关系;另一种方案是用一个字段然后用特殊字符分隔门店ID(例如:JSON字符串)。

在查询某个门店可以使用的优惠券列表式前一种方案虽然能在查询[……]

继续阅读

背景:为什么要有全文索引

在当我们进行模糊查询的时候,一般都是使用 like 关键字来实现,在数据量小的情况下效率确实可以。

有的人会说了,数据量大的时候我加索引啊。确实可以加索引,而且 like condition% 是可以使用到索引的,但是当你要 like %condition% 或 %[……]

继续阅读

基础部分

1、什么是 MySQL?它的特点是什么?

MySQL是一个开源的关系型数据库管理系统。它的特点是:

速度快:MySQL是一种高性能、高可靠性的数据库管理系统,可以处理大量的数据。
开源:MySQL是一个开源的数据库管理系统,可以免费使用。
跨平台:MySQL可以运行在多种[……]

继续阅读

背景

社交产品,用户表,用户数据600万条,字段87个(别问为什么这么多,问就是业务需要+祖传屎山);此时需要增加一个geometry类型的字段将用户的经纬度数据存入数据表中并增加空间索引, 且要求必须在原表中新加字段(别杠为什么不开新表,杠就是业务需要)。

机器配置:18核36线程CPU,[……]

继续阅读

背景

什么实际场景下需要使用分布式锁,为什么?

分布式锁在以下实际场景中经常需要使用:

缓存同步:在分布式系统中,多个节点共享同一个缓存。当缓存失效时,多个节点可能会同时触发对后端数据源的请求。使用分布式锁可以保证只有一个节点去加载数据到缓存中,避免缓存击穿和缓存雪崩问题,提高系统性能和稳[……]

继续阅读