数据库索引原理

如何理解数据库索引?

数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。就像我们以前用的新华字典的目录一样,能帮助我们快速查询到某一个字。

索引分类

分类角度 索引名称
数据结构 B+树,Hash索引,R-Tree等
存储层面 聚簇索引,非聚簇索引
逻辑层面 主键索引,普通索引,复合索引,唯一索引,空间索引等

数据库索引

  • 索引可以加快数据库的检索速度;

  • 表经常进行INSERT/UPDATE/DELETE操作就不要建立索引了,换言之:索引会降低插入、删除、修改等维护任务的速度;

  • 索引需要占物理和数据空间;

  • 了解过索引的最左匹配原则;

  • 知道索引的分类:聚集索引和非聚集索引;

  • Mysql支持Hash索引和B+树索引两种;

  • 使用索引为什么可以加快数据库的检索速度啊?

  • 为什么说索引会降低插入、删除、修改等维护任务的速度;

  • 索引的最左匹配原则指的是什么?

  • Hash索引和B+树索引有什么区别?主流的使用哪一个比较多?InnoDB存储都支持吗?

  • 聚集索引和非聚集索引有什么区别?

MySQL  innoDB 的逻辑存储结构

什么是聚簇索引?

MySQL 在InnoDB引擎下,表都是根据主键顺序以索引的形式存放的,这种数据存储方式也被称为聚簇索引,“聚簇”就是表示数据行和相邻的键值紧凑的存储在一起

create table person(
id int primary key,
age int not null
index (age)engine=InnoDB;

https://mp.weixin.qq.com/s/Wo61D8yzoOx-rpvCmlSyxg

https://mp.weixin.qq.com/s/yPttZnuioV71a_qmE1P3ww

https://mp.weixin.qq.com/s/Wc6Gw6S5xMy2DhTCrogxVQ

【深入理解数据库原理】原理相关推荐

  1. 赠书:深入理解MySQL主从原理

    根据经验,想要快速学习一门技术有3种方式. 第一种方式是通过代码来理解它的实现,反推它的逻辑. 这种方式的难度很大,而且起点相对高,能够沉浸其中的人非常少,过程相对来说是苦闷的,但如果能够沉下心来看代 ...

  2. 不同类的方法 事务问题_深入理解 Spring 事务原理

    Spring事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的.对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获 ...

  3. 面试精讲之面试考点及大厂真题 - 分布式专栏 05 公司使用什么RPC框架,聊聊你理解的RPC原理

    05 公司使用什么RPC框架,聊聊你理解的RPC原理 引言 前些年我们在做一个规模不大的系统的时候,也就是单体架构,一台服务器部署上一个应用和数据库也就够了.但是现代化互联网公司业务逐渐扩大,服务逐渐 ...

  4. @transactional注解原理_《Spring源码解析(十二)》深入理解Spring事务原理,告别面试一问三不知的尴尬...

    本文将带领大家领略Spring事务的风采,Spring事务是我们在日常开发中经常会遇到的,也是各种大小面试中的高频题,希望通过本文,能让大家对Spring事务有个深入的了解,无论开发还是面试,都不会让 ...

  5. 理解mysql 底层原理

    理解mysql 底层原理 mysql 关系数据库的一种,开源免费,支持百万级的存储性能.性能稳定.社区活跃 鉴于 本人半路出家,对于一些原理的东西都不怎么了解,正好 无所事事的情况下,翻博客,吸取知识 ...

  6. 如果有人问你数据库的原理,叫他看这篇文章(下)

    英文:Christophe Kalenzaga 译者:伯乐在线 - Panblack 链接:http://blog.jobbole.com/100349/ 简化的例子 我们已经研究了 3 种类型的联接 ...

  7. 数据库底层原理-------数据结构

    一提到关系型数据库,我禁不住想:有些东西被忽视了.关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata .但很少有文章讲解数据库是如何工作的.你可以自己谷歌/百度 ...

  8. 深入理解CAS算法原理

    转载自 深入理解CAS算法原理 1.什么是CAS? CAS:Compare and Swap,即比较再交换. jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法 ...

  9. 如果有人问你数据库的原理,叫他看这篇文章

    http://blog.jobbole.com/100349 一提到关系型数据库,我禁不住想:有些东西被忽视了.关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradat ...

  10. Mysql数据库管理系统原理及基本操作

    文章目录 Mysql数据库管理系统原理 一.引子: 二.数据库种类: 三.数据库解决的问题: 四.数据库的作用: 五.SQL结构语句: 六.关系型数据库结构: 七.存储引擎: 八.数据库存储和查询: ...

最新文章

  1. KDE与GNOME的战争史(转载)
  2. 星巴克、苹果、谷歌、亚马逊等巨头,为何同时做这件事?
  3. Self-Tuning Spectral Clustering论文阅读和代码理解
  4. gnome mysql client_解决MySQLWorkbenchgnome-keyring-daemon错误的方法分享
  5. Error -Cannot add direct child without default aggregation defined for control
  6. 日期getTime()方法以及JavaScript中的示例
  7. Latest node.js npm installation on Ubuntu 12.04
  8. SQL Server使用
  9. bootstrap视频教程 jsp_家政服务系统(JAVA,SSM,BOOTSTRAP,JSP,AJAX,MYSQL)+手把手系列视频教程...
  10. 用xbuilder开发遇到的问题
  11. SpringBoot 系列教程(九十二):Spring Boot全局设置Jackson时间处理
  12. 静态分析android程序之阅读smali代码
  13. mongodb ubuntu下安装以及开启远程访问
  14. c语言课程设计会员卡计费系统,会员卡计费系统源代码.doc
  15. linux命令—文件压缩解压缩
  16. 从Hadoop1.0到Hadoop2.0架构的优化和发展探索详解
  17. cocos2d-x 改变精灵图片的2种方法
  18. 我花了十八年时间才能和你坐在一起喝咖啡
  19. php输出圆周率100位,圆周率1500多位
  20. linux中国vi,使用 Vi/Vim 编辑器:高级概念 | Linux 中国

热门文章

  1. CATIA 安装Service Pack 时出错 检查完整性失败
  2. day21、3 - 防火墙HA
  3. 慎用!wordpress的额外css功能会浪费id资源!
  4. Spring RestTemplate的Basic Auth使用
  5. 关于国际论文中,国内外人名顺序的问题
  6. 申请开通微信支付教程
  7. 未能加载文件或程序集
  8. INS/GNSS组合导航(一)全球导航卫星系统对比
  9. [思考进阶]02 如何进行认知升级?
  10. Java实现多文件生成压缩包下载