二分法分页 mysql_MySQL--3索引与innodb结构

大家好,我是安小生,下面我们讲解一下MySQL的索引与结构。

分页优化。

可以通过子查询,

select * from article where id >= (select id from article limit 999999,1) limit 10;

2,先查询id,在查询数据

select id from article limit 99999,10;

select * from article where id in ();

3,先加索引在查询

alert table 表 add index idx_title_url_author(titme,url,author);

select title,url,author from article where id >=(select id from article limit 99999,1) limit 10;

以上是一个数据量比较大的一个分页优化方案。

innodb是如何储存我们的数据的?

innodb由多个段空间组成。

1.1 叶子段:索引b+tree信息。

1.2 非叶子段:索引b+tree的信息。

1.3 回滚段:回滚的数据

1.4 索引段:总的索引位置记录

空间段

一个区中64个也,不满足就会重新申请一个空间,一个区大概是1mb,一段空间由多个组成。而一个空间有16KB

行空间数据的长度大小,实际的表数据,文件信息等。

看下面的图吧。

67e3d7393b6b

总结图.png

什么是索引

索引是数据相关优化的重要手段,主要是单表的情况下,索引不是万能的,不要误会使用的一定可以优化,跟优化的效果好。

MySQL中的所有类型:bterr索引,hash索引,fulltext(全文索引)一般会使用es分布式搜索引擎代替,R-tree索引。

索引类型:

主键索引:就是我们的自增id主键。

唯一索引:一个唯一字段建立的索引。

单索引:单个字段简历的索引。

联合索引:多个字段联合创建的索引,

全文索引:列如:你今天去干什么了。会拆分:你,今天,去,干什么了。针对中文进行分词的搜索。

覆盖索引:是所有查询sql🔐追求的索引效率完美的使用,

后面我们会详细的出一个索引文章。

B+TREE结构。

btree结构:二叉树,二分算法。

二分法:会不断的选择一个元素作为中数,比较左边的元素小于中位数,右边的大于中位数。

如图:

67e3d7393b6b

二叉树的结构.png

b+tree 根据平衡树来的。

67e3d7393b6b

b+tree结构.png

数据不存在非叶子节点,所有的数据是存在叶子节点,根据数据的情况进行数据计算会尽量的均衡分配,不同的页中。

基本的浮动范围=》浮动值=》根据最大和最小创建不同的页。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值