这样的数据结构如何改才能使查询速度提高?
原先数据表结构如下:
S1:PK1,S2:PK2,S3:PK3,S4:PK4,S5:PK5,S6,S7,S8,S9,S10 ------
1 2 3 4 5 6 7 8 9 10 ------
1 2 3 4 a 6 7 8 9 10 ------
1 x 3 b a1 6 7 8 9 10 ------
1 y c 4 a2 6 7 8 9 10 ------
1 z 3 4 a 6 7 8 9 10 ------
也就是说,除了S2,S3,S4,S5之外,其它字段存储的都是重复的数据。显然,这不符合第二范式。而且因为数据量已达到上百万条,造成查询速度很慢,客户很有意见。现在,我打算把重复的数据放到另一个表中,建立一种主从表的关系。在本机上做测试,select * 的时候,从以前的表里查需要6分多钟,从改后的主从表里查只需要2分多钟。可是,我想不通的是,从两个表里查东西速度应该比从一个表里查东西有所下降才对,而且,严格按照数据库设计范式设计数据库,只会减少冗余的数据,不会加快查询速度呀。
还有,请教各位大侠,像我刚才说的那种数据库结构,应该怎样改才能大大加快查询速度?
还有一个不明白的地方是:从一个数据库里查数据,我只从自己的表里查数据,会因为其它的表非常大,非常占用空间而使我自己的表的查询速度受到影响吗?数据库存储数据多了之后,体积庞大之后,会对数据库本身有什么影响?