DB

数据库的索引

Oct 29, 2021
2021
DB, MySQL

索引在数据库中的地位非常重要,只有搞明白索引,才有可能在日常的数据库相关工作中解决实际问题:提高库表设计能力、优化查询效率、提升数据库性能等核心问题。数据库的索引有哪些?以 MySQL 的 InnoDB 存储引擎为例,一般可分 ...

数据库的事务

Oct 22, 2021
2021
DB, MySQL

请思考一个我在工作中遇到的一个场景:假设用户参加了一个优惠活动,买了一个30 天的会员卡,然后活动又送了一个 7 天的体验卡,最终我要交付给用户 37 天的会员权益时间。如果这两笔订单同时请求系统进行交付,那如何 ...

数据库的锁

Oct 16, 2021
2021
DB, MySQL

数据库里的锁的范围和维度都有不同的实现和叫法,如果我这样列出来你可能会很焦虑(GAP 锁,记录锁,显式锁定,表级锁,行级锁,页级锁,咨询锁,间隙锁,共享锁,排他锁,互斥锁,自旋锁,读写锁,悲观锁,乐观锁 ...

Redis 的分布式锁使用注意

Jun 3, 2021
2021
Redis, DB

为什么需要分布式锁 # 锁机制用于管理对共享资源的并发访问控制,当同一服务的多台机器间需要控制并发的时候,需要保证服务间在同一时间只能被一个线程访问。由于 Redis 的特点是单进程,并且具有高性能的特点,所以一般用 ...

数据库的 join 连接类型

Sep 30, 2020
2020
DB

内连接 # 内连接为默认连接方式,只有两张表都匹配的行才显示。 SELECT * from a INNER JOIN b on a.name=b.name; 左(外)连接 # 左边的表不加限制,会全部显示出来,右边的只会显示符合搜索条件的记录,不匹配的记录会以 null 显示。 SELECT * from a LEFT JOIN b on a.name=b.name; ...