mysql 表字段设计与磁盘io的关系

本文详细介绍了磁盘的基本结构及其对IO性能的影响,并针对MySQL数据库如何通过优化字段类型来减少磁盘IO,从而提高数据库性能进行了深入探讨。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.磁盘结构

对于管理磁盘,分磁盘面、磁头、磁道、柱面和扇区。
磁盘面:磁盘是由一叠磁盘面组成,见下左图。
磁头(Heads):每个磁头对应一个磁盘面,负责该磁盘面上的数据的读写。
磁道(Track):每个盘面会围绕圆心划分出多个同心圆圈,每个圆圈叫做一个磁道。
柱面(Cylinders):所有盘片上的同一位置的磁道组成的立体叫做一个柱面。
扇区(Sector):以磁道为单位管理磁盘仍然太大,所以计算机前辈们又把每个磁道划分出了多个扇区,见下图:

磁盘io.png

2. 磁盘IO的过程

    第一步,首先是磁头径向移动来寻找数据所在的磁道。这部分时间叫寻道时间。
    第二步,找到目标磁道后通过盘面旋转,将目标扇区移动到磁头的正下方。
    第三步,向目标扇区读取或者写入数据。到此为止,一次磁盘IO完成。
 故:单次磁盘IO时间 = 寻道时间 + 旋转延迟 + 存取时间。

      比如: 对于旋转延时,假如服务器上经常使用的是1W转/分钟的磁盘,每旋转一周所需的时间为60*1000/10000=6ms,故其旋转延迟为(0-6ms)。对于存取时间,一般耗时较短,为零点几ms。对于寻道时间,现代磁盘大概在3-15ms,其中寻道时间大小主要受磁头当前所在位置和目标磁道所在位置相对距离的影响。操作系统通过按磁道对应的柱面划分分区,来降低磁盘IO所花费的的寻道时间 ,进而提高磁盘的读写性能。

3.mysql IO

       由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以 page(block)的方式,也就是说,如果我们每条记录所占用的空间量减小,就会使每个page中可存放的数据行数增大,那么每次 IO 可访问的行数也就增多了。反过来说,处理相同行数的数据,需要访问的 page 就会减少,也就是 IO 操作次数降低,直接提升性能。此外,由于我们的内存是有限的,增加每个page中存放的数据行数,就等于增加每个内存块的缓存数据量,同时还会提升内存换中数据命中的几率,也就是缓存命中率。
     所以对于mysql字段的类型选择很重要,在满足的前提下,保证字段类型所占的存储空间尽量小哈,这样可以降低磁盘io,提高查询速度!
彩云 版本:mCloud2.2.0 | 大小:11 MB| 语言:中文 适用固件:Android 2.0及以上 分享日期:2013-12-13 游戏题材:商业 开发商:中国移动通信集团公司 内容介绍 彩云是中国移动旗下的个人网盘产品,面向所有用户提供安全、便捷、高效的个人云存储服务,帮助用户统一存储和管理不同终端的个人信息资产。用户首次注册即可获得16GB的网盘空间,通过官方推出的系列活动可免费领取T级空间。同时,依托运营商的资源优势,为用户提供业内速度最优的上传、下载体验。 【功能特点】 * 账号信息,安全无虞!——彩云向所有用户提供运营商级别的安全防护,除了免费登陆提醒,还有文件加密,全方位保障用户数字资产安全。 * T级空间,瞬间领取!——用户首次注册即可获得16GB的网盘空间,通过官方推出的系列活动可免费升级T级空间。 *精彩资源,短信分享!——直接转存他/她的彩云里,也可给他/她发短信,分享短信彩云无限量,免费发! * 跨端使用,就用彩云!——彩云为手机、个人电脑、平板电脑等提供的客户端覆盖所有操作系统,文件存彩云,手机、电脑,哪里想用点哪里。 * 手机信息,一键备份!——手机端可以实现通讯录、短彩信、手机应用、手机图片、手机视频和日历所有信息的全备份,信息丢失后只需一键恢复,即可找回所有数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值