Mysql查询的磁盘搜素次数

mysql帮助手册 原文

7.2.2 估算查询性能

对小表来说,通常情况下只需要搜索一次磁盘就能找到对应的记录(因为索引可能已经缓存起来了)。对大表来说,大致可以这么估算,它使用B树做索引,想要找到一条记录大概需要搜索的次数为:log(row_count) / log(index_block_length /3 * 2 / (index_length +data_pointer_length)) + 1




对于我这样的数学白痴,乍看这个公式有点蒙,自己算下,加深记忆:

磁盘搜素次数=索引搜索次数+一次数据搜索

设索引块数为P,索引块存的行数为B=2/3*( index_block_length/ index_length +data_pointer_length) (其中2/3是索引填充率)

行数为R        R = P*B

则B树的高度为lg(P),即为索引搜索次数X = lg(P) = lg(R/B) = log(R)/logB

表的索引需要的磁盘空间:R*2/3*( index_block_length/ index_length +data_pointer_length)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值