mysql怎么前缀索引 mysql前缀索引 排序( 四 )


前缀索引的好处?
使用前缀索引,定义好长度,可以做到即节省空间,又不用额外增加太多的查询成本 。
前缀索引的弊端?
前缀索引会使覆盖索引失效,额外增加回表的消耗 , 如果前缀索引的长度选择区分度不高,会额外导致扫描行数增加 。
其mysql怎么前缀索引他给字符串加索引的方式?
什么是脏页?
MySQL在更新数据的时候会写redo log并且更新内存以后就会返回,数据文件并不会立即更新 , 这就是所谓的WAL机制 。
当内存被更新以后,内存中的数据页就会和磁盘上的数据页存在不一致的情况,该内存也就被称为脏页。
内存中的数据被写入磁盘以后 , 内容变为一致,此时该内存页就被称为干净页 。
什么叫刷脏页?
内存数据页中的内容被写入磁盘数据页中的过程称为刷脏页 。
什么时候会刷脏页?
InnoDB如何控制刷脏页的频率?
首先确认InnoDB所在主机的IO能力,此时需要用到数据库的innodb_io_capacity参数 , 该参数推荐设置为磁盘的IOPS 。磁盘的IOPS可以通过fio工具进行测试 。
InndoDB刷脏页主要考虑以下两个因素mysql怎么前缀索引:
MySQL会根据F1(M)和F2(N)两个值,取其中较大的值记为R , 之后引擎可以按照innodb_io_capacity定义的能力乘以R%来控制刷脏页的速度 。
脏页比例
参数innodb_max_dirty_pages_pct是脏页比例的上限,MySQL 8.0中是90% 。
当前脏页比例可以通过Innodb_buffer_pool_pages_dirty/Innodb_buffer_pool_pages_total计算获得,具体sql计算指令如下:
连坐机制
InnoDB在刷脏页的时候,如果该脏页旁边的是页也是脏页,会同时把相邻的脏页刷掉 。
该刷脏页行为由参数innodb_flush_neighbors控制:
对于机械硬盘,开启连坐会减少随机IO的消耗,但对于SSD,没必要开启该参数 。
关于mysql怎么前缀索引和mysql前缀索引 排序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读