MYSQL学习笔记二:索引

来源:互联网 发布:sql中join的用法例子 编辑:程序博客网 时间:2024/05/22 13:35

索引的定义:

是帮助MySql高速获取的数据结构,类比字典。

详解:

在数据之外数据库还维护着满足特定查找算法的数据结构,这些数据结构以某种方式应用(指向)数据。这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。
这里写图片描述

提高查找效率的原因:

通过事先排好序,从而在查找时可以应用二分查找等高效率的算法。

索引的存储形式:

索引本身也很大,不可能存储在内存中,它是以文件的形式存储在磁盘上的。

索引的类型:

平时所说的索引,如果没有特殊的说明,都是指B树(多路搜索树B+,并不一定是二叉树,也可能是三叉树…),其中聚集索引,次要索引,覆盖索引,前缀索引,唯一索引默认都是使用B+树索引统称索引。除了B+树索引外,还有哈希索引(hash index)等。

索引有什么副作用吗?

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

逻辑删除的优点:

1.方便数据分析,保证数据的物理完整性,存储地址连续。
2.使索引不会失效,提供索引的准确性。

原创粉丝点击