036 一位技术大拿(2 / 2)
毕竟资料库这种东西会的人比较多,难度也相对较低。基本上如果不在商业公司工作,那麽这方面知识也不一定会用到。
一个人长时间不接触相关的技术,很容易就忘了相对基础的内容。所以有些算法框架,已经重生过的自己,现在还能记住吗?所以说,自己不能好逸恶劳,还是要好好再提升一下自己了。
罗纪未来想做的事情是很新锐的,所以还要趁着自己记得清楚,至少能把记住一些细节的模型都写下来,不然等到自己能赛博炼丹的时候,却少了至关重要的单方和硬体架构,那可凉凉了。
「罗纪xi?」李镇贤问了一下。
「哦,不好意思,刚刚走神了。」罗纪接过李镇贤的电脑,敲击着键盘,说道:「你这里的查询使用了SELECT *,全选了所有的列,但是你的这层嵌套查询中其实只有id是用得到的。可以只查询id减少数据传输量。尽量避免全表扫描。」
李镇贤点点头:「是的,我是感觉应该是哪个地方出问题了,速度始终不理想。」
罗纪说道:「你之前是使用的什麽索引来加快查询速度?」
李镇贤说道:「Hash(哈希)索引我建立了,但是感觉速度不是特别快。但是这应该是最快的索引法了,我在想可能是别的地方出问题了。」
罗纪琢磨着:「虽然不会桶溢出,但是感觉......用B树吧」
「B树?」李镇贤有些诧异:「可是用B树不是更慢了?」
罗纪微微一笑:「你现在需要索引的数据里,Hash值相等的太多了。有时候Hash索引遇到大量Hash值相等的情况后,性能真不一定就会比B树索引高。你没有发现吗?现在大量的记录指针信息存于同一个Hash值相关联。这样要定位某一条记录时,就会特别特别麻烦,反而会浪费多次表数据的访问,最后整体性能反而低下。所以,现在用Hash表已经不大适合了。这时候用B树可能速度反而更快。」
「原来是这样啊。」李镇贤恍然大悟,再看向罗纪的目光里多了点佩服。
罗纪叹了口气:「要是再加上Redis就更好了。」
李镇贤疑惑的询问:「什麽?」
「一种NoSQL内存资料库。」罗纪其实已经记不清Redis是什麽时候推出的,可能就是这两年。看着对方一脸懵的表情,罗纪也不在意,因为这算不上什麽技术秘密。
甚至罗纪乾脆反问道:「你难道不知道吗?首先,Redis的数据模型与RDBMS不同,它采用了更灵活的数据存储和查询方式,只需要描述针对特定抽象数据类型的操作即可。其次,Redis将数据存储在内存中,而非磁碟上,因此大大缩短了读写操作的访问时间,这也是速度快的原因。当然,在存储数据时需要采用适合后续快速检索的方式。难以置信,你居然不知道?」
被这麽一问,反倒是李镇贤开始自我怀疑了,说道:「好像听过。不过我对于SQL的相关事务很久没关心了。因为这次数据中心要来首尔开,我才重新研究起这个。」
罗纪在合适的时间点,摆出技术大拿的丑恶嘴脸,说道:「现在查询时间缩短到了仅需1.1秒,速度比之前快了近4倍。这对于用户体验来说,算是很不错了。但是你别骄傲,回去再优化一下。我觉得索引速度最快可以压到0.1到0.3秒。」
「好的好的。」李镇贤一边答应着,一边退出去。
罗纪看着时间,十分钟后他假装去洗手间,一路上看到众人的目光果然有了点变化。从之前单纯的礼貌,现在多了一些自己人的信赖。
随后整个下午的工作就不多了。等到晚上,掐着点下班。
罗纪还得去小课堂兼职去呢!
↑返回顶部↑