0

比如现在有一个硬盘,是7500转每分钟,每转一圈时间就是0.008秒,即8毫秒,假设现在要读取20000条数据,每条数据长度大概0.1kb,总的数据大小是2mb,能不能大概估算出所需要的读取时间是多少呢?如果中间还有连表等操作,影响因素又是什么呢?
一旦我们知道了时间,更容易对编写的sql效率有更好的认识.
请各位赐教,mysql读取数据的时间的因素有哪些,且大概计算的方式是什么样的呢?

修改问题:

楼下的大神都给出了非常宝贵的意见!谢谢您们!!其实我是更希望知道这个时间的估算是基于一个怎样的因素.
当然如果能通过这个时间和sql查询的时间对比,来为优化sql提供基础参考当然更好.
不过我其实更关心的是时间计算的影响因素和计算过程.
再次感谢大家!

查看全部 3 个回答

0

@clcx_1315 已经把你问题的意义阐述过了,磁盘读取时间只能估算,对sql优化的意义不大,只有在数据库内部在评估整体语句的COST时参考使用,这方面需要综合考虑的因素太多,如:
1、磁盘内外圈的读取速度差异很大,怎么知道数据存在哪个区域?
2、从磁盘的缓存中读取怎么算时间?
3、数据库、操作系统会把多次IO进行合并,怎么算?
4、如果能从数据库的缓存中获取数据呢?

这方面oracle数据库有个估算的公式,如果确实想了解的自己搜一下,深入研究数据库Internal的话才有点用。