从原理说,char(10)为什么比char(100)更有利于提高性能
看英文资料,头疼的地方是,几乎刹不住闸。一个问题来了,掌握细节往往要查很多其他的书。
比如高盛收购广告公司,往往对并购不理解细节,就要找并购相关类的入门书,需要看看中文对各类资产的表述,可能还会查到罗斯查尔德的发家,顺延到欧洲史。
兜了一圈回来,发现对广告盈利还不了解,赶紧把《计算广告》看一遍,对于投放的计算还需要牵出来统计学,因为要做推荐,还涉及到了推荐系统,最后智能投放可能还跟机器学习有关。
看了几个Demo后,猛的发现,自己原本是要干嘛来的,摸着头皮也想不到自己丢失在哪里了。
早晨看书,写文,思考,最容易发生这样的思维跳转。比如这两天在看《MySQL高性能》,讲到数据类型 char 应当尽量缩短长度,可以有效提高查询性能。
但仅仅这一句说法,不禁让人难以相信,因为并没有从原理上让每个读者都知道,这是为什么!我们在平时的工作中,指定数据类型,往往想多大就多大,似乎拍拍脑袋就做出了决定。
于是我就会去查一些资料,官方的也好,专业的Blog也罢,翻了n篇文章,才知道这和底层的存储有关。
底层的存储使用数据页做为最低单元,每个页的大小一旦指定就固定了,比如指定 8K作为一页,那么页总容量为 8096 Bytes. 当 char 指定 10 Bytes的时候,总共可以容纳 101 条数据(假设存储在这页上的表只有这么一个字段,且不考虑其他存储消耗),而 char 指定为 100Bytes的时候,则可以容纳 10 条数据。
如此来看,同样磁盘的磁头寻址一次,拿到一个页,得到的数据,量不在同一个级别上。因此提高性能也是理所当然。
你看,读书真要动起脑子来,也费劲。更别说,在查资料的过程中,会给各种迷惑给干扰,仅仅保持自己能够快速收敛,效率就已经很高了。
End
往期精彩:
文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)