这篇文章主要介绍“MySQL索引的语法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL索引的语法是什么”文章能帮助大家解决问题。
左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在磁盘上也并不是一定物理相邻的)。为了加快Col2的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找快速获取到相应数据。
索引优势
加快查找和排序的速率,降低数据库的IO成本以及CPU的消耗
通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
索引劣势
索引实际上也是一张表,保存了主键和索引字段,并指向实体类的记录,本身需要占用空间
虽然增加了查询效率,但对于增删改,每次改动表,还需要更新一下索引 新增:自然需要在索引树中新增节点 删除:索引树中指向的记录可能会失效,意味着这棵索引树很多节点,都是失效的 改动:索引树中节点的指向可能需要改变
但实际上呢,我们MySQL中并不是用二叉查找树来存储,为何呢?
要知道,二叉查找树,此处一个节点只能存储一条数据,而一个节点呢,在MySQL里边又对应一个磁盘块,这样我们每次读取一个磁盘块,只能获取一条数据,效率特别的低,所以我们会想到采用B树这种结构来存储。
索引结构
索引是在MySQL的存储引擎层中实现的,而不是在服务器层实现的。所以每种存储引擎的索引都不一定完全相同,而且也不是所有的引擎都支持所有的索引类型。
BTREE 索引 : 最常见的索引类型,大部分索引都支持 B 树索引。
HASH 索引:只有Memory引擎支持 , 使用场景简单 。
R-tree 索引(空间索引):空间索引是MyISAM引擎的一个特殊索引类型,主要用于地理空间数据类型,通常使用较少,不做特别介绍。
Full-text (全文索引) :全文索引也是MyISAM的一个特殊索引类型,主要用于全文索引,InnoDB从Mysql5.6版本开始支持全文索引。
大型站长资讯类网站! https://www.zxzz.com.cn