1.最近看了一些数据库的方面的知识,感觉值得我思考的主要有两个重要的方面:一方面是学术方面的数据库范式,另一方面是数据库优化。
数据库范式给出了一种防止数据冗余及不一致等问题的做法,以后设计表时,要经常用数据库范式的思维思考表设计的合理性。
数据库优化:在学习这部分内容时,主要是索引,我开始明白访问内存与访问磁盘的差别在实际应用中的体现。数据库索引之于数据库系统的好处:一方面是减少查找的次数(或者说比较的次数),另一方面则是减少访问对磁盘的访问次数(它通过比较精确的定位到块,减少对磁盘的IO)。
学过数据库方面的一些知识,让我对整个软件体系又有了新的理解,当一个软件运行时,会将其全部或部分加载入内存,而软件的核心则是对输入数据进行处理产生输出结果,也就是说数据处理才是软件真正要做的事。而对于软件的程序(也即计算机指令部分)部分其性能主要取决于硬件,真正对软件的优化,还是通过对直接或间接地对数据存取的优化。
我在看数据库优化时,也想到一个问题,为什么书中的大神门竭尽全力在理解和有时甚至是在探索数据库的优化之路,这使我想到了当今软件界的格局。对于软件,我们要么自己造轮子,这样就会对软件十分了解,要么就用别人造好的轮子。而当我们直接用别人的东西时,就势必会对其工作原理不太了解,想要更高效的利用别人的东西,就需要对它的工作原理进行了解。对于mvn,jvm,tomcat,mysql等软件都是如此,理解了这些东西,能让我对今后的学习有更加深刻的认识,知道自己在做什么,该做什么。