为什么要使用Redis

本文探讨了数据库索引的作用和原理,指出索引对于提升查询速度的重要性,同时解释了为什么在大量数据和高并发情况下,内存数据库如Redis能成为解决方案。Redis作为缓存,缓解了磁盘I/O压力,适合数据量大且并发高的场景。然而,Redis的使用也会带来增删改操作的性能损耗。文章还提及了SAPHANA作为内存数据库的高效解决方案,但成本较高。
摘要由CSDN通过智能技术生成

Redis的使用场景

标题索引的原理和作用。

当数据库建表没有添加索引时,和直接从磁盘读取数据的效率是一样慢的。
索引和建表一样的存储在4k的datapage存储模型中,无非就是,表存储的是一列一列的数据,而索引是将一行的某一列的数据存储到4k的存储模型中,就比如身份证的数据,就根据身份证的这一条数据对应的是某一行的datapage,有这样的一个指向关系。
而不管是索引还是存表的数据都是存储在磁盘中的,这时候就需要一个存储在内存中的B+树,B+树只有树干是存储在内存中的,当一条sql命中索引了,就先会找到B+树的树干,树干去寻找树叶,就是磁盘中的身份证对应某个4kdatapage,解析读到内存中,根据对应的身份证再去datapage去找对应的某行的数据,将这行数据读取到内存中。
为什么不将树叶也存到内存中而不是磁盘中,因为索引够大的情况下,内存是不够的,各自使用自己的能力,磁盘够大,内存够快,内存只存储树干,这样以减少磁盘大量的IO.

标题表里的数据量很多,会导致性能的下降?

分情况:
表添加了索引:
做增删改时,速度会变慢。因为要维护索引,所以速度会变慢
查询呢?
1.1个或者少量查询依然很快
2.并发大的时候会受磁盘带宽的影响

标题Redis来了(内存的数据库)

在数据量很大,而且并发大的条件下,增删改查的效率一定会低。
怎么解决呢?
有一家公司:SAP HANA内存级别的关系型数据库
数据在磁盘和内存的体积是不一样的,因为磁盘没有指针,磁盘不能像堆中的对象一样,一个对象可以由不能的线程调用,可能你将一个2T的存在磁盘中的数据迁移到内存中只有1T多一点,而且还可以对数据进行压缩,但SAP HANA价格昂贵。
这时Redis出现了,将一部分的数据放到缓存中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值