Mysql 索引原理

1 . 查找效率较高的数据结构:hash表 完全平衡二叉树 B树 B+树

hash表完全平衡二叉树B树B+树
精确查找快,范围查找慢每个非叶子节点有两个叶子节点导致树高范围查询不如B+树B+树 的叶子节点 备份了所有非叶子节点,并且按照一定的顺序排列,范围查找快
  1. “文件大小”和“占用空间”的区别: 简单的介绍了一下“文件大小”和“占用空间”的差别,所以当我们存储非常多的小文件的时候,其所占用的空间就越大,但很可能其实际的文件大小却很小,也就是这个道理。同理,一个文件越大,其占用的空间也就越小。
    在这里插入图片描述
    说简单一点,拿仓库做比方,我们有100个仓库,为了好管理和查找,我们可能会把各种不同的物品分别放入不同的仓库,但是这个物品很可能不能填满仓库,那么它仍然也是占用了仓库的所有空间的。那么可能有人问了,为什么不把这个仓库多放东西,好节约空间,但是这样的话很可能你找很久久没有办法找到你所要的东西,其性能就非常低了。
    Windows会使用NTFS和FAT的文件系统管理磁盘文件,这个大家都知道,而所有文件系统都是基于"簇"的大小,也就是分配单元的大小,说白了,就是分配用来保存文件的最小磁盘空间量。而常用的Windows XP NTFS下最大的默认簇大小为 4 千字节 (KB)。也就是说,每个文件都是按4K的空间划分保存的,即使这个文件只有100字节。举个生活中的例子吧,很多人一起吃饭,这个分配单元就相当于碗的大小,这个文件就好比碗里的饭,每个人的饭量不一样,有人吃的多,就需要两个碗来盛饭,但是有的人吃的少,但也是要占一个碗。了解这个概念以后,理解起来文件大小和占用空间的关系就简单多了.
    3. Mysql 节点的一页为16kb,假设一行数据大小为1kb ,那么一个叶子节点可以存储16条数据,非叶子节点= 索引值(bigint 8b)+ 指针(6B)=14B ,16k/14B =1170(索引+指针) ,当B+树的高度为2时,1170* 16 =18724 条数据 ,当高度为3时,1170* 1170*16 =21907748条数据 ,也就是说2千万条数据的树高大概是3,那么磁盘IO的次数为3,
    4. Mysql 存储引擎默认为 MYISAM,其存储的是数据地址,Innodb 主键索引 存储的是数据,辅助索引存储的是主键索引值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值