我有一个矛盾,我前段时间花了好多时间研究jive,觉得它的模式很好,连我自己写的论坛也很多部分参照了它。但是前两个月我到一家公司任职后,却发现jive在对数据库处理上其实做得并不那么好。
例如,jive在读取论坛帖子时,通常使用一次历遍,将所有的ID取出,然后在读取每个帖子的属性,这样如果有n条数据,就运行n+1次sql。但是为什么它不直接运行一次sql直接把帖子的所有属性(包括ID)等读取出来?在公司,我写一些程序的时候,本来也使用这种方式的,但是后来却发现这样其实对数据库的负担也实在很大,所以最后我还是选择了运行一次sql,把属性都读取到一个数组里。
在jive中对数据库开销的例子还很多,例如,我们编辑帖子,它有好多的方法,setTitile(title),setContent(content),每set一个属性,它就运行一次update的sql,但是为什么不先把所有的属性都set好,然后一次update进数据库呢?
是我的想法错吗?大家还有没有什么好的办法?