Mysql数据库索引

索引底层原理

1MyISAM 和 InnoDB 是MySQL的两代搜索引擎; 区别在于,对于辅助索引的实现原理不一样,并且MyISAM是索引和文件分离的,而InnoDB不是;

2.innodb存储引擎默认MySQL使用B+Tree实现其索引结构。

3.索引文件存储在磁盘中,要想使用索引,存储引擎会按页(磁盘块最大16K)读取磁盘数据到内存当中,(想要提高效率就要降低io读取次数,提高效率)。一次io操作读页的整数倍(物理相邻导致可能包含很多无用数据)

二叉查找树---------任何最小单位的子树的左键值小于根键值,右键值大于根键值,使用中序排序可到到升序排列

AVL----------平衡二叉查找树(任何节点的左右子树高度相差最大为1)

B树----------平衡多路查找树
一页的数据量是有限的,一页数据包含多个数据段(指针+主键+整行数据记录)
主键是有序的将主键分割成多个区间,每个区间有一个指针,指针指向下个区间磁盘块的地址。
整行数据记录如果过大就会增加树的深度,增加io操作
并且对于区间查询不能很好支持

B+树---------平衡多路查找树优化
对B树优化以后,除了叶子节点每页多个数据段只存储(指针+主键 )约16字节,16k/16字节=1000,三层可以存储10亿调数据。叶子节点存储的是所有的数据记录,并且每条记录还包含指向下条记录的指针,形成一个链表的形式,所有的主键都会在叶子结点命中,B+树会有两个指针,一个指向根节点,一个指向主键最小的叶子结点,所以有两种查找方式:a根据主键分页查找和范围查找,b根据根节点的随机查找。

聚集索引索引(主键)--------一般是自增有序的。如果是是无序的,如果有修改主键就必须要重构索引。叶子节点包含整行记录数据,

辅助索引---------允许重复,并且叶子节点只保存聚集索引(主键)的值,然后根据主键去主键索引查找所有对应的数据,整个过程要查询两个索引树结构,InnoDB存储引擎会遍历辅助索引找到主键,然后再通过主键在聚集索引中找到完整的行记录数据

MyISAM更是索引和文件分离,B+树的叶子结点的数据域存放的是文件内容的地址,主索引和辅助索引的B+树都是如此,那么如果我改变了一个地址,是不是所有的索引树都得改变,正如前面我们讲的在磁盘上频繁的读写操作是效率很低的,而这块又不适用局部原理,因为逻辑上相邻的结点,物理上不一定相邻,那么这样就会造成效率上的降低;

InnoDB,它让除了主索引以外的辅助索引的叶子结点的数据域都保存主键,先通过辅助索引找到主键,然后通过主键找到叶子结点的所有数据,遍历了两棵树,但是,这样如果有了修改的话,改变的只是辅助索引,其它索引都不用动,

评价索引:索引的好坏就是要看i/o操作次数

分数阶傅里叶变换(Fractional Fourier Transform, FRFT)是对传统傅里叶变换的拓展,它通过非整数阶的变换方式,能够更有效地处理非线性信号以及涉及时频局部化的问题。在信号处理领域,FRFT尤其适用于分析非平稳信号,例如在雷达、声纳和通信系统中,对线性调频(Linear Frequency Modulation, LFM)信号的分析具有显著优势。LFM信号是一种频率随时间线性变化的信号,因其具有宽频带和良好的时频分辨率,被广泛应用于雷达和通信系统。FRFT能够更精准地捕捉LFM信号的时间和频率信息,相比普通傅里叶变换,其性能更为出色。 MATLAB是一种强大的数值计算和科学计算工具,拥有丰富的函数库和用户友好的界面。在MATLAB中实现FRFT,通常需要编写自定义函数或利用信号处理工具箱中的相关函数。例如,一个名为“frft”的文件可能是用于执行分数阶傅里叶变换的MATLAB脚本或函数,并展示其在信号处理中的应用。FRFT的正确性验证通常通过对比变换前后信号的特性来完成,比如评估信号的重构质量、信噪比等。具体而言,可以通过计算原始信号与经过FRFT处理后的信号之间的相似度,或者对比LFM信号的关键参数(如初始频率、扫频率和持续时间)是否在变换后得到准确恢复。 在MATLAB代码实现中,通常包含以下步骤:首先,生成LFM信号模型,设定其初始频率、扫频率、持续时间和采样率等参数;其次,利用自定义的frft函数对LFM信号进行分数阶傅里叶变换;接着,使用MATLAB的可视化工具(如plot或imagesc)展示原始信号的时域和频域表示,以及FRFT后的结果,以便直观对比;最后,通过计算均方误差、峰值信噪比等指标来评估FRFT的性能。深入理解FRFT的数学原理并结合MATLAB编程技巧,可以实现对LFM信号的有效分析和处理。这个代码示例不仅展示了理论知识在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值