面试官问:为什么选择 B+ 树作为数据库索引结构?
MySQL

面试官问:为什么选择 B+ 树作为数据库索引结构?

115 0

首先,来谈谈B树。为什么要使用B树?我们需要明白以下两个事实:【事实1】不同容量的存储器,访问速度差异悬殊。以磁盘和内存为例,访问磁盘的时间大概是ms级的,访问内存的时间大概是ns级的。有个形象的比喻,若一次内存访问需要1秒,则一次外存访问需要1天。所以,现在的存储系统,都是分级组织的。最常用的数据...

阅读全文
MySQL

MySQL 表之间关联查询时,为什么建议小表驱动大表?

100 0

有的时候我们在操作数据库时会将两个或多个数据表关联起来通过一些条件筛选数据,在关联表时我们要遵循一些原则,这样会使我们编写的SQL 语句在效率上快很多。一、优化原则小表驱动大表,即小的数据集驱动大得数据集。在知道什么是小表驱动大表之前,我们先来了解两个查询关键字,IN 与 EXISTS。我们通过两段...

阅读全文
MySQL

MySQL百万级、千万级数据多表关联SQL语句调优

136 0

本文不涉及复杂的底层数据结构,通过explain解释SQL,并根据可能出现的情况,来做具体的优化,使百万级、千万级数据表关联查询第一页结果能在2秒内完成真实业务告警系统优化结果。希望读者能够理解SQL的执行过程,并根据过程优化,走上自己的成金之路需要优化的查询:使用explain出现了Using t...

阅读全文
面试官问:你说一说Redis的过期键删除策略
Redis

面试官问:你说一说Redis的过期键删除策略

111 0

Redis的过期键删除策略也是面试中经常会被问的,我最近面试,被问到了好几次。对于Redis服务器来说,内存资源非常宝贵,如果一些过期键一直不被删除,就会造成资源浪费,因此我们需要考虑一个问题:如果一个键过期了,它什么时候会被删除呢?常见的删除策略常见的删除策略有以下3种:1、定时删除在设置键的过期...

阅读全文