数据库知识点大盘点(三)

开课吧开课吧锤锤2021-05-17 11:13

    Java编程语言是一种简单、面向对象、分布式、解释型、健壮安全、与系统无关、可移植、高性能、多线程和动态的语言。如今Java已经广泛应用于各个领域的编程开发。

Java

    MySQL索引

    索引是在存储引擎层实现的,而不是在服务器层实现的,所以不同存储引擎具有不同的索引类型和实现。

    B+Tree索引

    是大多数MySQL存储引擎的默认索引类型。

    因为不再需要进行全表扫描,只需要对树进行搜索即可,所以查找速度快很多。

    因为B+Tree的有序性,所以除了用于查找,还可以用于排序和分组。

    可以指定多个列作为索引列,多个索引列共同组成键。

    适用于全键值、键值范围和键前缀查找,其中键前缀查找只适用于最左前缀查找。如果不是按照索引列的顺序进行查找,则无法使用索引。

    InnoDB的B+Tree索引分为主索引和辅助索引。主索引的叶子节点data域记录着完整的数据记录,这种索引方式被称为聚簇索引。因为无法把数据行存放在两个不同的地方,所以一个表只能有一个聚簇索引。

Java

    辅助索引的叶子节点的data域记录着主键的值,因此在使用辅助索引进行查找时,需要先查找到主键值,然后再到主索引中进行查找,这个过程也被称作回表。

Java

    哈希索引

    哈希索引能以O(1)时间进行查找,但是失去了有序性:

    无法用于排序与分组;

    只支持精确查找,无法用于部分查找和范围查找。

    InnoDB存储引擎有一个特殊的功能叫“自适应哈希索引”,当某个索引值被使用的非常频繁时,会在B+Tree索引之上再创建一个哈希索引,这样就让B+Tree索引具有哈希索引的一些优点,比如快速的哈希查找。

    全文索引

    MyISAM存储引擎支持全文索引,用于查找文本中的关键词,而不是直接比较是否相等。

    查找条件使用MATCHAGAINST,而不是普通的WHERE。

    全文索引使用倒排索引实现,它记录着关键词到其所在文档的映射。

    InnoDB存储引擎在MySQL5.6.4版本中也开始支持全文索引。

    空间数据索引

    MyISAM存储引擎支持空间数据索引(R-Tree),可以用于地理数据存储。空间数据索引会从所有维度来索引数据,可以有效地使用任意维度来进行组合查询。

    必须使用GIS相关的函数来维护数据。

    以上就是由开课吧老师敖丙提供的“数据库知识点大盘点(三)”一文,更多Java教程相关内容尽在开课吧广场Java教程频道!

有用
分享