ITPub博客

首页 > 数据库 > > GaussDB100 多块读、随机读和顺序读

GaussDB100 多块读、随机读和顺序读

作者:GaussDB_数据库 时间:2020-02-25 10:50:35 0 删除 编辑

IO是最消耗资源的,减少IO的次数是有效的性能调优方法,那么哪些方法可以减少IO的消耗呢?

合理的业务需求:

如果每次查询都要把一个千万级的表统计一遍,那必然带来大量的IO,即使是逻辑读也是非常影响性能的。

 多块读

如果操作系统的缓存比较大,而且要读取的数据块是相邻的,那么就可以使用多块读,即一次IO读取多个数据块,这样可以减少IO的消耗。

对表做全表扫描是可以使用多块读的,因为表每次申请的空间(extent)都是连续的,而普通的索引扫描就不适合,首先索引块之间是指针相连的,而且同一个索引块中的数据在表中也不一定是连续分布的。想想查字典的例子,你应该能明白为什么通过索引访问内容不能使用多块读。

当然一次IO读取128个块的开销要比只读取1个块的开销大,但是肯定比使用128次IO小的多。

顺序读和随机读

顺序读和随机读也是一组重要概念。

顺序读比随机读的效率高的多。如果要读100条数据,它们是连续分布的,那么只要读取两三个数据块,如果是随机分布在100个数据块的,那么就要读取100个数据块。而且磁盘读写时需要转动磁头,当然是读取连续的内容效率最高


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3150676/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19197