查询的复杂度: 查询的次数,测试复杂度,采用的是悲观态度,复杂度用O(x)表示
常规的查询,顺序查询:安装顺序,查询到结果结束,O()
排序的目的是为了高效的查询
对于mysql任意一张表,常规使用的查询方法也是顺序查
树结构
根
节点
内部结点
叶子节点
A 根节点
内部结点 A B C
叶子结点 D E F G
MYSQL 为了优化查询 提出了索引概念
当用户创建索引的时候,mysql首先复制数据,完成一个新的Btree(平衡树)结构,mysql索引默认用的是b+tree 结构
平衡树:左树和右树的高度相差不能高过一。
1、有一个根节点,根节点为空或有一个记录和两个子节点。
2、每个节点当做key和指针相互分割,指针指向子节点
3、d表示数的宽度,除叶子节点之外,其他每个节点有【d/2。d-1】条数据,而且key从左到右小到大排列
4、在一个节点当做,第n个子树所有key,小于这个节点当做第n个key,大于这个节点的当做第n-1个key
5、所有的叶子结点必须在同一层次
索引其实是一种数据结构,可以加快我们的查询效率,但是创建索引会复制数据,会占 用资源
索引的使用区间 :
当我们使用索引后,查询指定数据返回的数据是总数据的3%~5%,我们是认为合适的,少量数据不适合用索引