mysql 索引类型 bitmap_理解数据库中的常见索引类型
在数据库中,索引能加快数据库的查询速度。下面就来理解一些常见的索引类型:
B-Tree
Bitmap
Clustered
Non-unique
unique
索引有很多种类型,可以为不同的场景提供更好的性能。在MySQL中,索引是在存储引擎层而不是服务器层实现的。所以,并没有统一的索引标准:不同存储引擎的索引的工作方式并不一样,也不是所有的存储引擎都支持所有类型的索引。即使多个存储引擎支持同一种类型的索引,其底层的实现也可能不同。
B-Tree索引
当人们谈论索引的时候,如果没有特别指明类型,那多半说的是B-Tree索引,它使用B-Tree数据结构来存储数据。大多数MySQL引擎都支持这种索引。
B-Tree通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同。
B-Tree索引能够加快访问数据的速度,因为存储引擎不再需要进行全表扫描来获取需要的数据,取而代之的是从索引的根节点开始进行搜索。
Bitmap索引
位图索引(bitmap index)技术是一类特殊的数据库索引技术,其索引使用bit数组(或称bitmap、bit set、bit string、bit vector)进行存储与计算操作。
位图索引可以看作是存储了大量bit位的bit序列,并且通过这些bit序列上的按位操作来响应查询请求,同时每个bit序列中的位数与数据表中的行数是一致的。
Clustered索引
聚合索引(clustered index),表中记录的物理顺序与键值的索引顺序相同。一个表只能有一个聚合索引。
优点是查询速度快,因为一旦具有第一个索引值的记录被找到,具有连续索引值的记录也一定物理的紧跟其后。
缺点是对表进行修改速度较慢,这是为了保持表中的记录的物理顺序与索引的顺序一致,而把记录插入到数据页的相应位置,必须在数据页中进行数据重排,降低了执行速度。在插入新记录时数据文件为了维持 B+Tree 的特性而频繁的分裂调整,十分低效。
建议使用聚合索引的场合为:
某列包含了小数目的不同值。
排序和范围查找。
Non-unique索引
非唯一索引(non unique index)是在表上一个或者多个字段组合建立的索引,这个或者这些字段的值组合起来在表中可以重复,不要求唯一。
unique索引
唯一索引(unique index)是在表上一个或者多个字段组合建立的索引,这个或者这些字段的值组合起来在表中不可以重复。
mysql 索引类型 bitmap_理解数据库中的常见索引类型相关推荐
- Oracle数据库中字符串相关字段类型辨析
本文来自李明子csdn博客(http://blog.csdn.net/free1985),商业转载请联系博主获得授权,非商业转载请注明出处! 1 引子 字符串类型的字段在各关系数据库中均占有重要地位. ...
- 数据库索引统计信息不一致_列存储索引增强功能–克隆数据库中的索引统计信息更新
数据库索引统计信息不一致 SQL Server was launched in 1993 on WinNT and it completed its 25-year anniversary recen ...
- 索引视图是否物理存储在数据库中以及使用索引视图的一些见解
索引视图是否物理存储在数据库中以及使用索引视图的一些见解 前言 这个话题我本来是写在文章里没有写在随笔里的,不过赶脚不写在随笔里其他人就看不到了,因为小弟对视图的认识不深 希望写在随笔里让大家也讨论一 ...
- NodeJS同步MySQL上游数据到ElasticSearch数据库中
NodeJS同步MySQL上游数据到ElasticSearch数据库中 项目地址: https://github.com/Miazzy/xdata-elasticsearchs-service.git ...
- mysql 字符串转long_把数据库中的字符串格式转为long类型
背景: 在做接口时,需要把数据库中所有ID取出来,用jmter做一些数据关联,问题来了,数据库中的ID转换出来为字符型,而接口是需要使用LONG型,所以在导出来后,数据一直报类型不为long,那如何把 ...
- mysql text 查询速度_数据库学习之让索引加快查询速度(四)
数据库学习之让索引加快查询速度 目录 索引简介 mysql的索引分类 创建索引 添加与删除索引 索引简介 索引在MySQL中也叫做"键",是存储引擎用于快速找到记录的一种数据结构. ...
- mysql的to char data_数据库中的to char
Oralce中设置小数点位数 假如数据库中有一个字段为zdt8,是数值类型的,即使是数字0,也想显示成0.00,则使用to_char函数转换一下 to_char(NVL(zdt8,0.00),'fm9 ...
- mysql 主键注解_oracle数据库中主键注解
hibernate5(5)实体映射注解配置[2]主键生成策略 @GeneratedValue基本注解类型 在上一篇文章中,我们讲到了JPA使用@GeneratedValue注解来定义生成策略,而关于注 ...
- mysql 手动写时间_关于数据库中如何存储时间的一点思考
1.切记不要用字符串存储日期 我记得我在大学的时候就这样干过,而且现在很多对数据库不太了解的新手也会这样干,可见,这种存储日期的方式的优点还是有的,就是简单直白,容易上手. 但是,这是不正确的做法,主 ...
最新文章
- exchange2007收件人管理
- html5 form表单,html5 教程
- python实现cc攻击_运维纪录:遭遇CC攻击,防御与查水表
- Memcache工作原理总结
- mysql Communications link failure druid
- iOS Cookie学习(NSHTTPCookieStorage的使用)
- A start job is running for Raise network interface(5min 13s )问题解决方法
- mysql查询连续3个月以上_MySQL查询显示连续的结果
- 第一百三十期:14种常见编程语言的优缺点及应用范围
- 网页中的按钮无法显示问题解决
- matlab共享变量,matlab如何编写共享参数拟合程序 - 程序语言 - 小木虫 - 学术 科研 互动社区...
- php防止视频资源被下载
- kettle 创建脚本文件
- java编程加载窗口,插入图片
- 物联网常见的无线传输协议类型
- vue 解决跨域问题(开发环境)
- 中台核心秘密:建设过程中的组织架构
- CentOS离线 + 在线安装telnet(rpm包安装)
- 华为android系统通知栏怎么关闭,华为通知栏怎么设置?三招帮你禁止华为通知栏消息...
- Caliburn.Micro 杰的入门教程3,事件和参数
热门文章
- 基于灰度图的滚动轴承故障诊断python
- 第一次与病毒亲密接触——江民倒下了,瑞星能坚挺
- Bash One-Liners Explained 译文(三)(转载自团子的小窝)
- jquery trigger()用法
- 如何将PDF转换成CAD文件?简单快捷的方法分享给你
- evernote快捷键
- python 3.8.0安卓_Python 3.8.0 稳定版发布,来看看Python 3.8.0的新功能吧
- android service前台服务器,Android网络前台向服务端页面请求数据
- [附源码]计算机毕业设计JAVAjsp海纳装修报价管理系统
- Wince Linux 屏幕校准