校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 开源框架 > redis
题目

Redis为什么会比MySQL快?

解答

1.Redis是基于内存存储的,MySQL是基于磁盘存储的

2.Redis存储的是k-v格式的数据。时间复杂度是O(1),常数阶,而MySQL引擎的底层实现是B+Tree,时间复杂度是O(logn),对数阶。Redis会比MySQL快一点点。

3.MySQL数据存储是存储在表中,查找数据时要先对表进行全局扫描或者根据索引查找,这涉及到磁盘的查找,磁盘查找如果是按条点查找可能会快点,但是顺序查找就比较慢;而Redis不用这么麻烦,本身就是存储在内存中,会根据数据在内存的位置直接取出。

4.Redis是单线程的多路复用IO,单线程避免了线程切换的开销,而多路复用IO避免了IO等待的开销,在多核处理器下提高处理器的使用效率可以对数据进行分区,然后每个处理器处理不同的数据。

C 61条回复 评论
fuy

存储形式 IO模型 数据结构

发表于 2020-08-11 12:00:53
0 0
sober

一个是内存,一个是磁盘

发表于 2020-08-11 11:56:14
0 0
走4207

1.Redis是基于内存存储的,MySQL是基于磁盘存储的

2.Redis存储的是k-v格式的数据。时间复杂度是O(1),常数阶,而MySQL引擎的底层实现是B+Tree,时间复杂度是O(logn),对数阶。Redis会比MySQL快一点点。

3.MySQL数据存储是存储在表里

4.Redis是单线程的多路复用IO

发表于 2020-08-11 11:41:31
0 0
fuy

需要从存储形式、数据结构、io模型等角度进行回答
1.Redis是基于内存存储的,MySQL是基于磁盘存储的
2.Redis存储的是k-v格式的数据。时间复杂度是O(1)而MySQL引擎的底层实现是B+Tree,时间复杂度是O(logn)
3.MySQL数据存储涉及到磁盘的查找;而Redis不用这么麻烦,本身就是存储在内存中,
4.Redis是单线程的多路复用IO

发表于 2020-08-11 11:26:18
0 0
HaterGone

一般情况下两者都会使用的吧

发表于 2020-08-11 11:22:09
0 0