Refactor & 效能提升第三章作业
为什么后端效能大部分是慢在资料库?如何解决这个问题?
主要有两个原因,首先,是因为网页生成代码实际上近乎完成了,大体上只差相关数据而已,相对运行起来会比较快。而数据则需要去数据库里面去,这就涉及到读取和赋值,并最终生产网页。所以会慢一些。其次,是因为有时候数据库和后端代码并不在一个地方,所以本身传输又会占用一些时间。综上两点,读取的数据越多,这相应的时间则越多。而后端的code代码则是基本不变的。
解决这个问题本质上就是减少数据读取的时间,具体有4个方法:
1、减少数据请求次数
因为在读取数据前,还会进行数据请求,这个过程就会花时间,所以同样的数据量请求的次数越少则消耗的时间越少。
2、提高数据读取效率
在读取数据前需要找到数据,但数据量比较大时就会在搜寻数据上就会画更多的时间。所以,使用一些数据寻找技巧就非常重要,而最主要的就是建立索引index,它的本质就是对数据建立分类索引,因而能降低寻找范围进而提高效率。
3、使用更合理的数据结构来索引
由于不同的数据占用的存储资源不同,所以在使用索引的时候,如果使用占有存储资源小的数据结构来进行的话,也会减少一些时间。比如布尔值和数值就比时间值快很多。
4、减少数据运算时间
在请求数据是有时会对数据进行运算,比如counter运算。所以,相对的就可以事先进行相应的计算并把计算结果存入关联的counter_cache里,这样在请求数据的时候就不需要进行计算,而是直接读取。这样就把读取网页的时间减少了,而是把运行过程留给数据推送后的后端进行。
Refactor & 效能提升第三章作业