索引B+树的理解和坑

MYSQL单表数据达2000万性能严重下降,为什么?

在中国互联网技术圈流传着这么一个说法:MySQL 单表数据量大于 2000 万行,性能会明显下降。

可是,根据以往经验,社交产品,用户互相点赞关注的关系表,数据1亿9千万条且没有进行分表,甚至分区表都没有。[……]

继续阅读

什么是索引?

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

索引的类型

1. 主键索引

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

2. 普通索引

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

继续阅读

背景

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

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

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

继续阅读

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

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

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

继续阅读

基础部分

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

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

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

继续阅读

背景

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

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

继续阅读