面试题:数据库索引有哪些?底层怎么实现的?数据库怎么优化?(顺丰、招银面试题)
面试题:解释下数据库索引(大疆面试题)
面试题:索引采用b+树和HashMap的区别,使用场景,数据库为什么用b+树做索引,而不用HashMap(京东面试题)
面试题:了解数据库吗?数据库的索引优化(网易、58同城面试题)
一、什么是索引
索引是帮助数据库高效获取数据的数据结构。索引的实现通常使用B树及其变种B+树。
为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。
二、底层怎么实现的
B-Tree 是最常用的用于索引的数据结构。因为它们是时间复杂度低, 查找、删除、插入操作都可以可以在对数时间内完成。另外一个重要原因存储在B-Tree中的数据是有序的。
哈希表是另外一种你可能看到用作索引的数据结构-这些索引通常被称为哈希索引。使用哈希索引的原因是,在寻找值时哈希表效率极高。所以,如果使用哈希索引,对于比较字符串是否相等的查询能够极快的检索出的值。
为什么不用HashMap
哈希表是无顺的数据结构&#