什么是索引,作用?原理?MySQL的原理?

什么是索引?

索引就像是书的目录,是与表或者视图关联磁盘上的结构,可以加快从表中或者视图中检索行的速度。素银中包含表或者视图中的一行或者多列生成的键。这些键存储在一个结构(BTree)中,使SQL可以快速有效的查找与键值关联的行。

为什么要建立索引,即索引的优点

(1)建立索引的行可以保证行的唯一性,生成唯一的word
(2)建立索引可以有效的缩短数据的检索时间
(3)建立索引可以加快表与表之间的 连接
(4)为用来排序或者是分组的字段添加索引可以加快和排序顺序

  • 无索引,直接去读表数据存放的磁盘快,督导数据缓冲区中再去查找需要的数据
  • 有索引,先读入索引表,通过索引表直接去找到需要数据的物理地址,并把数据读入数据缓冲区中。

索引的缺点?

(1)索引是有大量数据的时候才建立的,没有大量的数据反而会浪费时间,因为索引是使用二叉树建立
(2)当一个系统查询比较繁琐,而新建,修改等操作比较少时,可以创建索引,这样查询的速度就会比以前快很多,同时也带来弊端,就是新建或修改等操作时,比没有索引或者建立覆盖索引是的要慢
(3)索引不是越多越好,太多的索引会占用很多的索引空间,甚至比存储一条记录更多。
对于需要频繁新增记录的表,最好不要创建索引,没有索引的表,执行insert、append都很快,有了索引以后,就会多一个维护索引的操作,一些大表可能就会导致insert速度非常慢。

你可能感兴趣的:(什么是索引,作用?原理?MySQL的原理?)