MySQL索引的类型有哪些?

分析&回答

从功能逻辑角度,可分为:

  • 普通索引 INDEX(普通索引)     ALTER TABLE table_name ADD INDEX index_name ( column )
  • 唯一索引 UNIQUE(唯一索引)     ALTER TABLE table_name ADD UNIQUE (column)
  • 主键索引 PRIMARY KEY(主键索引)  ALTER TABLE table_name ADD PRIMARY KEY ( column )
  • 组合索引 组合索引   ALTER TABLE table_name ADD INDEX index_name ( column1column2column3 )
  • 全文索引 FULLTEXT(全文索引)      ALTER TABLE table_name ADD FULLTEXT ( column )

从数据结构角度,可分为:

  • B+树索引
  • hash索引
  • 全文索引
  • 空间数据索引(R-Tree索引)(不要求

从物理存储角度,可分为:

  • 聚簇索引
  • 非聚簇索引

反思&扩展

说说数据库索引类型?(Oracle)

逻辑上:

  • Single column 单行索引
  • Concatenated 多行索引
  • Unique 唯一索引
  • NonUnique 非唯一索引
  • Function-based函数索引
  • Domain 域索引

物理上:

  • Partitioned 分区索引
  • NonPartitioned 非分区索引
  • B-tree:
  • Normal 正常型B树
  • Rever Key 反转型B树 
  • Bitmap 位图索引

索引结构:

B-tree:

  • 适合与大量的增、删、改(OLTP);
  • 不能用包含OR操作符的查询;
  • 适合高基数的列(唯一值多)
  • 典型的树状结构;
  • 每个结点都是数据块;
  • 大多都是物理上一层、两层或三层不定,逻辑上三层;
  • 叶子块数据是排序的,从左向右递增;
  • 在分支块和根块中放的是索引的范围;

Bitmap:

  • 适合与决策支持系统;
  • 做UPDATE代价非常高;
  • 非常适合OR操作符的查询; 
  • 基数比较少的时候才能建位图索引;

B*tree索引的话通常在访问小数据量的情况下比较适用,比如你访问不超过表中数据的5%,当然这只是个相对的比率,适用于一般的情况。bitmap的话在数据仓库中使用较多,用于低基数列,比如性别之类重复值很多的字段,基数越小越好。

喵呜面试助手:一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/73509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ztree的日常使用记录

1. 树节点名称中使用超文本标签 view.nameIsHTML设置为true即可 var setting {view: {nameIsHTML: true},check: {enable: true},data : {simpleData : {enable : true}} }; 2. 使用自定义的title显示 view.showTitle设置为true, 在data.key中声明title对应的字段名即可 …

力扣:83. 删除排序链表中的重复元素(Python3)

题目: 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 来源:力扣(LeetCode) 链接:力扣(LeetCode)官网 - 全球极客挚…

群晖NAS:通过Docker 部署宝塔面板【注册表:cyberbolt/baota】

群晖NAS:通过 Docker 部署宝塔面板【注册表:pch18/baota】 由于 docker 源地址被墙,在面板里面查询不到注册表,使用 ssh 命令行拉取 1、打开 SSH,链接后打开命令行 这里不赘述,具体自行百度 2、下载 镜像…

origin中optimal cluster安装报错解决

1.在安装之后程序运行出错,报错信息为缺少numpy包。解决办法:打开窗口-脚本窗口,用pip安装numpy,其他缺少的包可用同样方法解决。 2.有的包在外部python中才有,通过origin无法下载。解决办法:在连接-python…

PHP对接阿里云虚拟号的实现(号码隐私保护)

fastadmin 封装框架 实现功能:AXN隐私号绑定、解绑; 场景:为店铺手机号开通虚拟号,用户联系店铺展示虚拟号码; 官方开放文档地址:https://help.aliyun.com/document_detail/59655.html?spma2c4g.111742…

营销邮件主题怎么写?编写邮件主题的技巧?

如何创建营销邮件主题?制作EDM邮件主题的方法策略? 营销邮件主题在整个营销邮件中起着至关重要的作用,它是吸引读者打开邮件的第一步。蜂邮EDM将分享一些关于如何撰写令人惊艳的营销邮件主题的技巧,帮助您吸引更多的目标受众。 …

【高德地图】 覆盖物/画点/画折线/画多边形/画矩形/画圆

官方示例 https://lbs.amap.com/demo/javascript-api/example/mouse-operate-map/mouse-draw-overlayers <!doctype html> <html lang"en"><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content…

I2S/PCM知识点记录

目录 1.常见的音频采样率有两类&#xff0c;一类是48K domain&#xff0c;另一类是44.1KHz domain 2.常见采样深度 【即单声道和单slot位宽】8/12/16/24/32 bit 3.帧结构 4.I2S/PCM允许实际有效采样位宽比传输的位宽小 5.ddr存储对齐 6.sclk和mclk以及adifclk的产…

微信小程序中 vant weapp 使用外部的icon作为图标的步骤

微信小程序中 vant weapp 使用外部的icon作为图标的步骤 1. 在项目中创建静态资源文件夹2. 前往iconfont图标官网&#xff0c;添加图标并拷贝在线链接3. 下载iconfont代码&#xff0c;解压之后拷贝到小程序的目录中4. 修改iconfont.wxss 将本地链接替换为在线链接5. 在项目的ap…

L1-017 到底有多二 C++解法

题目 一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数&#xff0c;则程度增加0.5倍&#xff1b;如果还是个偶数&#xff0c;则再增加1倍。例如数字-13142223336是个11位数&#xff0c;其中有3个2&#xff0c;并且是负数&#xff0c;也是偶数…

Bash常见快捷键

生活在 Bash Shell 中&#xff0c;熟记以下快捷键&#xff0c;将极大的提高你的命令行操作效率。 编辑命令 Ctrl a &#xff1a;移到命令行首Ctrl e &#xff1a;移到命令行尾Ctrl f &#xff1a;按字符前移&#xff08;右向&#xff09;Ctrl b &#xff1a;按字符后移&a…

巨额亏损,股价遭受重创,Polestar极星汽车已陷入困境

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 8月31日&#xff0c;由吉利汽车&#xff08;00175&#xff09;和沃尔沃汽车合资创建的瑞典电动汽车公司Polestar极星汽车&#xff08;PSNY&#xff09;公布了2023年第二季度财报。 这家电动汽车公司在去年通过SPAC上市后&am…

Flink+Flink CDC版本升级的依赖问题总结

之前使用Flink1.13Flink CDC2.0同步MySQL数据&#xff0c;想测试一下最新的几个版本。但是各种依赖冲突的报错&#xff0c;经过一段时间的调试&#xff0c;终于解决&#xff0c;现在总结一下。 1、flink1.15前后jar包名称不一样 flink-streaming-java、flink-clients、flink-…

电子产品CE认证申请,CE-RED认证

CE认证&#xff0c;即只限于产品不危及人类、动物和货品的安全方面的基本安全要求&#xff0c;而不是一般质量要求&#xff0c;协调指令只规定主要要求&#xff0c;一般指令要求是标准的任务。 构成欧洲指令核心的"主要要求"&#xff0c;在欧共体1985年5月7日的&…

k8s集群中ETCD备份和恢复

文章目录 [toc]一、etcd 概述二、安装etcdctl工具三、kubeadm部署方式部署1&#xff09;备份2&#xff09;恢复四、定时备份 五、二进制部署备份1&#xff09;备份2&#xff09;恢复1、停止apiserver和etcd2、etcd_1恢复3、etcd_2恢复4、etcd_3恢复5、启动etcd和apiserver6、检…

java在linux环境中如何搭建xxl-job管理后台的详细步骤?

在 Linux 环境中搭建 xxl-job 的管理后台&#xff0c;你可以按照以下详细步骤进行&#xff1a; 下载并解压源码包&#xff1a;在 Linux 终端使用 wget 或 curl 命令下载 xxl-job 的源码包&#xff0c;并使用 tar 命令解压缩源码包到指定目录。 wget https://github.com/xuxueli…

使用正则表达式总结

多行匹配 使用Pattern.DOTALL | Pattern.MULTILINE参数 Pattern.CASE_INSENSITIVE&#xff1a;不区分大小写 public static void main(String[] args) {String teststr "AA aa AASSF \n\r */ DDET AA";String regStr "(?AA)\\w\\b";extracted(testst…

【linux命令讲解大全】075. 网络数据包分析工具ngrep及其应用

文章目录 ngrep补充说明安装语法选项实例 从零学 python ngrep 方便的数据包匹配和显示工具 补充说明 ngrep 命令是 grep 命令的网络版&#xff0c;它提供了更多的 grep 特性&#xff0c;用于搜索指定的数据包。由于安装 ngrep 需要使用 libpcap 库&#xff0c;因此它支持许…

map-reduce执行过程

Map阶段 Map 阶段是 MapReduce 框架中的一个重要阶段&#xff0c;它负责将输入数据转换为中间数据。Map 阶段由一个或多个 Map 任务组成&#xff0c;每个 Map 任务负责处理输入数据的一个子集。 执行步骤 Map 阶段的过程可以分为以下几个大步骤&#xff1a; 输入数据分配&a…

民安智库(北京第三方窗口测评)参展商满意度问卷如何设计

设计一个有效的参展商满意度问卷需要仔细考虑问题的选择、排列和表达方式&#xff0c;以确保获取有用的反馈信息。以下是设计参展商满意度问卷的一些建议&#xff1a; 明确调查的目标&#xff1a; 在开始设计问卷之前&#xff0c;确定满意度调查的具体目标和研究问题。明确您…