比如现在有一个硬盘,是7500转每分钟,每转一圈时间就是0.008秒,即8毫秒,假设现在要读取20000条数据,每条数据长度大概0.1kb,总的数据大小是2mb,能不能大概估算出所需要的读取时间是多少呢?如果中间还有连表等操作,影响因素又是什么呢?一旦我们知道了时间,更容易对编写的sql效率有更好的认识.请各位赐教,mysql读取数据的时间的因素有哪些,且大概计算的方式是什么样的呢?修改问题:楼下的大神都给出了非常宝贵的意见!谢谢您们!!其实我是更希望知道这个时间的估算是基于一个怎样的因素.当然如果能通过这个时间和sql查询的时间对比,来为优化sql提供基础参考当然更好.不过我其实更关心的是时间计算的影响因素和计算过程.再次感谢大家!
2 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
重要的是你读了多少数据,丢弃了多少,最后取到了多少,知道从磁盘获取数据的时间公式有什么意义呢?所以sql的优化是怎样从最少的数据集获取到你的结果才是最重要的,而这些是跟sql写法,业务逻辑,索引规则有关的,从磁盘读取到内存花费的时间对整个sql运行时间来说就是个const,SAS换成ssd这个const就小点而已
largeQ
TA贡献2039条经验 获得超7个赞
一般优化sql不会去直接计算时间,影响因素比较多,但是你可以通过explain语句分析sql的执行机制和效率。用法就是explain加上要分析的sql。explainselect*fromtbwhere...
添加回答
举报
0/150
提交
取消