网站备案把二级域名放在国外,做网站是干什么的,查营业执照用什么软件,广州建站网站MySQL作为数据库#xff0c;它的功能就是做数据存储和数据查找#xff1b;使用B树作为索引结构是为了实现高效的查找、插入和删除操作。
B树的查找、插入、删除的复杂度都为 O(log n)#xff0c;它是一个多叉树的结构#xff0c;能兼顾各种操作的效率的数据结构。如果使用…MySQL作为数据库它的功能就是做数据存储和数据查找使用B树作为索引结构是为了实现高效的查找、插入和删除操作。
B树的查找、插入、删除的复杂度都为 O(log n)它是一个多叉树的结构能兼顾各种操作的效率的数据结构。如果使用平衡二叉树或者红黑树树的高度就会涨的很快查询的次数就会变多了不利于查找磁盘的I/O次数就会变多。
范围查找很快B树的叶子节点是使用双向链表链接起来的找到要查找的范围顺序读取就可以了
扩展
我们可以用作查找、插入和删除的数据结构有数组、链表、哈希表、树、堆、跳表、字典树…
数组
查找有序数组使用二分查找复杂度为 O(log n)如果是无序数组需要遍历查找复杂度为 O(n) 插入和删除的复杂度在最坏情况下都是 O(n)
链表
查找复杂度为 O(n)因为每次都需要从头开始遍历 插入如果直接都在头部插入复杂度为 O(1)需要有序的话复杂度为 O(n)删除复杂度为 O(n)
哈希表
查找、插入和删除都是理想情况下为 O(1)如果冲突较多会退化到 O(n)
为什么不用
基于哈希函数进行索引的不能做范围查找部分查询冲突较多各个操作会退化到 O(n)
二叉树AVL树、红黑树、2-3树
查找、插入和删除都是 O(log n)
为什么不用
磁盘的存储效率不高每个节点包含的数据太少查找时会存在大量的寻址开销因为这个只有二叉在数据量很大的时候树的高度会很大的影响各个操作的效率
B树
查找、插入和删除都是 O(log n)
为什么不用
B树的所有节点都可以存储数据B树只有叶子结点可以存储数据在范围查找时B树不如B树的效率高B树在插入和删除的时候需要更多的节点更新操作B树插入和删除通常只在叶子节点上发生操作相对简单保持了高效率
跳表
查找、插入和删除都是 O(log n)
为什么不用
跳表需要维护多级指针占用磁盘额外空间需要的磁盘查找次数更多在内存处理中表现很好但是磁盘效率不高为了实现高效的查询占用了更多的内存空间
看起来主要是磁盘I/O的效率的原因居多B树设计的对磁盘I/O很友好比其他的数据结构需要更少的磁盘I/O