思维导图:数据库选型决策
MySQL、ElasticSearch、MondoDB、Redis、HBase、Cassandra、ScyllaDB,以及Spark和Flink的简单对比

文字版:
数据库选型决策
作者
路飞的纯白世界
MySQL
引擎
种类
InnoDB
支持事务
支持外键
聚集索引
必须有主键
辅助索引绑定在主键索引的叶子索引上
根据主键索引查询最快,只需一次检索
根据辅助索引查询需要两次检索
不记录表的总行数,需要全表扫描才可知总行数
最小的锁粒度是行锁
MyISAM
不支持事务
不支持外键
非聚集索引
主键索引和辅助索引各自独立
会记录表的总行数
最小的锁粒度是表锁
选择
默认且推荐使用InnoDB
不需要事务的表可考虑MyISAM
适用场景
严格事务需求
优势
CAP的CA
强一致性
可用性
局部查询性能优越
索引和分区能解决大部分查询性能问题
InnoDB对事务支持好
性能瓶颈
全表扫描性能差
多表关联查询性能差
原理
索引
B+树
只有叶子节点具有data
非叶子节点没有data,一次IO可读出更多的索引值,利于减少IO次数
利于范围查询
时间复杂度O(log n)
B-树
所有节点都有data
最快一次命中索引
ElasticSearch(8)
适用场景
OLAP
全文搜索
人类自然语言
地理位置搜索和计算
通常作为其他数据库的辅助(数据主要存储在其他数据库上

最低0.47元/天 解锁文章
73

被折叠的 条评论
为什么被折叠?



