方面知识也不一定会用到。
一个人长时间不接触相关的技术,很容易就忘了相对基础的内容。所以有些算法框架,已经重生过的自己,现在还能记住吗?所以说,自己不能好逸恶劳,还是要好好再提升一下自己了。
罗纪未来想做的事情是很新锐的,所以还要趁着自己记得清楚,至少能把记住一些细节的模型都写下来,不然等到自己能赛博炼丹的时候,却少了至关重要的单方和硬件架构,那可凉凉了。
“罗纪xi?”李镇贤问了一下。
“哦,不好意思,刚刚走神了。”罗纪接过李镇贤的电脑,敲击着键盘,说道:“你这里的查询使用了select*,全选了所有的列,但是你的这层嵌套查询中其实只有id是用得到的。可以只查询id减少数据传输量。尽量避免全表扫描。”
李镇贤点点头:“是的,我是感觉应该是哪个地方出问题了,速度始终不理想。”
罗纪说道:“你之前是使用的什么索引来加快查询速度?”
李镇贤说道:“hash(哈希)索引我建立了,但是感觉速度不是特别快。但是这应该是最快的索引法了,我在想可能是别的地方出问题了。”
罗纪琢磨着:“虽然不会桶溢出,但是感觉......用b树吧”
“b树?”李镇贤有些诧异:“可是用b树不是更慢了?”
罗纪微微一笑:“你现在需要索引的数据里,hash值相等的太多了。有时候hash索引遇到大量hash值相等的情况后,性能真不一定就会比b树索引高。你没有发现吗?现在大量的记录指针信息存于同一个hash值相关联。这样要定位某一条记录时,就会特别特别麻烦,反而会浪费多次表数据的访问,最后整体性能反而低下。所以,现在用hash表已经不大适合了。这时候用b树可能速度反而更快。”
“原来是这样啊。”李镇贤恍然大悟,再看向罗纪的目光里多了点佩服。
罗纪叹了口气:“要是再加上redis就更好了。”
李镇贤疑惑的询问:“什么?”
“一种nosql内存数据库。”罗纪其实已经记不清redis是什么时候推出的,可能就是这两年。看着对方一脸懵的表情,罗纪也不在意,因为这算不上什么技术秘密。
甚至罗纪干脆反问道:“你难道不知道吗?首先,redis的数据模型与rdbms不同,它采用了更灵活的数据存储和查询方式,只需要描述针对特定抽象数据类型的操作即可。其次,redis将数据存储在内存中,而非磁盘上,因此大大缩短了读写操作的访问时间,这也是速度快的原因。当然,在存储数据时需要采用适合后续快速检索的方式。难以置信,你居然不知道?”