美文网首页
估计查询性能

估计查询性能

作者: 逗比的一生 | 来源:发表于2023-07-05 13:42 被阅读0次

估计查询性能

多数情况下,你可以通过计算磁盘的搜索次数来估算查询性能。对于比较小的表,通常可以在一次磁盘搜索中找到行(因为索引可能已经被缓存了),而对于更大的表,你可以使用B-tree索引进行估算:你需要进行多少次查找才能找到行:log(row_count) / log(index_block_length / 3 * 2 / (index_length + data_pointer_length)) + 1

在MySQL中,index_block_length通常是1024字节,数据指针一般是4字节。比方说,有一个500,000的表,key是3字节,那么根据计算公式 log(500,000)/log(1024/3*2/(3+4)) + 1 = 4 次搜索。

该索引将需要500,000 * 7 * 3/2 = 5.2MB的存储空间(假设典型的索引缓存的填充率是2/3),因此你可以在内存中存放更多索引,可能只要一到两个调用就可以找到想要的行了。

但是,对于写操作,你需要四个搜索请求来查找在何处放置新的索引值,然后通常需要2次搜索来更新索引并写入行。

前面的讨论并不意味着你的应用性能会因为log N而缓慢下降。只要内容被OS或MySQL服务器缓存,随着表的变大,只会稍微变慢。在数据量变得太大而无法缓存后,将会变慢很多,直到你的应用程序受到磁盘搜索约束(按照log N增长)。为了避免这种情况,可以根据数据的增长而增加key的。对于MyISAM表,key的缓存大小由名为key_buffer_size的系统变量控制,详见 Section 5.1.1, “Configuring the Server”

链接:https://www.imooc.com/article/308225

相关文章

  • 15 估计查询性能和SELECT查询的速度

    估计查询性能 在大多数情况下,可以通过计算磁盘搜索来估计性能。对小的表,通常能在1次磁盘搜索中找到行(因为索引可能...

  • 查询结果大小估计

    http://www.doc88.com/p-6008167802901.html

  • in子查询陷阱

    对于in子查询性能,众说纷纭。有的人说 in 子查询性能很差,不能使用索引。而有人说 in 子查询能用索引,而且性...

  • MySQL性能优化(慢查询)

    1 MySQL性能优化之慢查询 1.1 性能优化的思路 首先需要使用慢查询功能,去获取所有查询时间比较长的SQL语...

  • ES学习总结

    过滤查询(Filter)和评分查询(Query)性能差异 过滤查询(Filtering queries)只是简单的...

  • sql 常用语句

    性能测试/****** SSMS 的 SelectTopNRows 命令的脚本 ******/ 查询 查询并插入...

  • Day2 Chapter5.4

    5.4 估计、偏差、方差(衡量学习算法的性能,通过分析影响性能的因素从而提高学习算法的性能) 1. 点估计: 作用...

  • elasticsearch的父子关系

    当文档索引性能远比查询性能重要的时候,父子关系是非常有用的,但是它也是有巨大代价的。其查询速度会比同等的嵌套查询慢...

  • Mysql索引杂谈

    结论:索引是把双刃剑,可以提高数据库性能,也会影响数据库性能 利: 索引加快数据查询速度,提高数据库查询性能。 弊...

  • 记一次ES性能优化过程

    集群节点分布不均 from to查询深度过大(默认10000) scroll查询过多 must查询性能相对较低

网友评论

      本文标题:估计查询性能

      本文链接:https://www.haomeiwen.com/subject/xmdkudtx.html