您的位置:首页 > 数据库 > MySQL

自己对mysql 索引理解

2015-03-12 11:06 591 查看
首先明确几个观点

1mysql 是红黑树,具体是什么暂时不去考虑,可以将其当做链表看(只是为了解释索引,真是情况不可以这样当)

2mysql 数据分块存储。

可以这样举例

mysql 表的结构如下

{

 id

 username

}

实际的存储方式是这样的

(1,a)(2,b) (3,a) (4,d) (5,e)

当前我们要查询id=5的数据  在没有索引的情况下 要进行5次比较最终得到结果数据

现在为id 添加索引,添加索引会引入另一张表

(1,point->((1,a)))........

表里存储的内容是被作为主键的字段值,以及指向真实数据的指针,在插入的时候就会是顺序插入 再用id进行查找的时候就会去查找这张索引表,

这张索引表有序,就可以使用二分查找进行这样的话查找就变为了log时间的 logn 和n的效率差距在数据越大的时候会越明显
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: