数据库的种类有哪些?

上周跟同事聊到数据库。

MySQL还是主流啊。

我那个朋友用MySQL5 .7 ,说性能不错。

InnoDB引擎用得最多。

PostgreSQL功能确实强。

我看过代码,PostgreSQL质量高。

MySQL社区大,用着方便。

新项目可以考虑PostgreSQL。

算了。

mysql索引类型,种类以及内部原理汇总

MySQL索引类型:
1 . 全文索引(FULLTEXT):
用于全文搜索。

原理:单词到文本位置映射。

场景:文章、博客搜索。

2 . 哈希索引:
等值查询。

原理:哈希函数映射。

场景:等值查询,不支持范围。

3 . B+树索引:
常用索引。

原理:B+树,平衡树。

场景:等值、范围、排序查询。

4 . RTREE索引:
空间数据查找。

原理:R树,多维空间。

场景:GIS,空间数据。

索引类型:
1 . 聚集索引:
基于数据行键值排序存储。

特点:一个表只有一个。

场景:主键索引。

原理:叶子节点存储数据行。

2 . 非聚集索引:
叶子节点存储指针或主键值。

特点:一个表可多个。

场景:加速查询,不按顺序。

原理:查询需回表。

具体索引类型:
1 . 普通索引:
加速查询,不保证唯一性。

场景:加速查询。

2 . 唯一索引:
加速查询,保证列值唯一。

场景:唯一字段,如用户名。

3 . 主键索引:
加速查询,唯一非空。

场景:主键字段。

4 . 组合索引:
多列索引,组合搜索。

场景:多列查询。

索引相关概念:
1 . 回表:
非聚集索引查询需回表。

影响:增加I/O开销。

2 . 索引覆盖:
查询列由索引覆盖。

优点:避免回表,提高性能。

mysql索引种类

B-树索引最常用。
支持等值、范围查询。
主键、唯一、普通索引用B+树。
哈希索引快,只精确匹配。
普通索引允许重复值、空值。
唯一索引值必须唯一,允许空值。
主键索引特殊唯一索引,不许空。
空间索引地理空间数据。
全文索引查文本关键字。
聚簇索引索引即数据。
非聚簇索引叶子是地址。
多字段索引多个字段组合。
自适应哈希InnoDB热页自动建。
覆盖索引索引含所有查询字段。
按需选型。