这二天我碰到一个用BBSGOOD的用户,他的SQL数据库达到了14G,帖子量400多万,用户量等其它数据也都达到上百万,这个时候恐怕你的论坛性能好不到那里去的,肯定像牛一样慢得可怜,在这里,我就是要提醒我们的SQL用户,该注意一下你的数据库大小,如果你的数据库将超过1G,那么你该考虑去动动手了。
首先,我认为单个数据库的数据库文件最好不要超过1G,因为我们必须考虑到windows文件系统对单个最大文件的承受力并且要考虑到较佳的性能,很多高级用户,甚至懂些开发的用户都无视了这个问题,还好,sql server提供给了我们一个解决这个问题的功能,即数据库的文件组。
什么意思呢,就是对一个数据库分成多个数据库文件,并且进行分组,那么我们就要注意到了,现在是一个数据库有多个数据库文件,并不是一个数据库只有一个数据库文件。这样一来,数据库文件是不是变小了,那么他性能提高在那里呢,提高在于系统对文件的读取性能。
对于一个大型的sql论坛,你可能有上百G的数据,做这些还尽尽不够的,现在我们来看看,为什么对数据库文件还要分组,直接将数据库文件分开不可以吗?这样当然可以,但是我刚才说了对了一个大型的论坛这是不够的,在大型论坛中,每一个表都可能存在大量的数据,可能一个表存放在一个单一的数据库文件中都不够,我们以bbsgood论坛举例子, 我可以分成四个组,数据库文件分成七个,其中有三个文件组有二个
数据库文件,这三个组分别用来存放三个数据量比较大的表,即,用户表,帖子主题表,帖子回复表,另外还有一个组只有一个数据库文件用来存放其它的内容。当然看哪个组数据库文件大了,可以在组中增加新的数据库文件。
为了进一步提高性能,我们还必须注意磁盘I/O的能力,好了,聪明的读者看到这里已经明白了,就是将各个数据库文件存放在不同的磁盘中,提高I/O的性能。另外我建议,数据库系统不要装在系统盘,一般是C盘中。而数据库文件最好也不要设置在和数据库系统的同一个盘中,尽量将他们都分开。
|