我先给一张表做例子:
姓名 购买的物品 价格 ..........
张三 衣服 100
张三 水果 10
张三 巧克力 20
李四 衣服 200
李四 家具 1000
李四 晚饭 15
李四 夜宵 20
........1:这张表不止这3个字段,当然其他字段没有什么重要性
2:姓名会重复,因为数据库主键不是这三个字段
3:购买物品不重复,这其实不用考虑,数据录入的时候会做安排
4:不同姓名的人购买的物品数量可能不一样,所以记录数量不一样。例如张三 3件 李四 4件
5:这个数据库很庞大,数量很多,姓名可能上万,甚至百万。再加上每个姓名可以多条记录,所以记录更多,查询的时候要考虑数据库的承受能力,尽可能简单,优化数据库!我的目的: “张三” 购买 “衣服” 100;“水果” 10;“巧克力” 20
“李四” 购买 “衣服” 200;“家具” 1000;“晚饭” 15;“夜宵” 20
大量数据都可以这样输出。
求高手解答。主要是数据库数据量很大,优化数据库操作。
姓名 购买的物品 价格 ..........
张三 衣服 100
张三 水果 10
张三 巧克力 20
李四 衣服 200
李四 家具 1000
李四 晚饭 15
李四 夜宵 20
........1:这张表不止这3个字段,当然其他字段没有什么重要性
2:姓名会重复,因为数据库主键不是这三个字段
3:购买物品不重复,这其实不用考虑,数据录入的时候会做安排
4:不同姓名的人购买的物品数量可能不一样,所以记录数量不一样。例如张三 3件 李四 4件
5:这个数据库很庞大,数量很多,姓名可能上万,甚至百万。再加上每个姓名可以多条记录,所以记录更多,查询的时候要考虑数据库的承受能力,尽可能简单,优化数据库!我的目的: “张三” 购买 “衣服” 100;“水果” 10;“巧克力” 20
“李四” 购买 “衣服” 200;“家具” 1000;“晚饭” 15;“夜宵” 20
大量数据都可以这样输出。
求高手解答。主要是数据库数据量很大,优化数据库操作。
楼主【hai2feng3】截止到2008-07-22 17:32:25的历史汇总数据(不包括此帖):
发帖的总数量:18 发帖的总分数:440 每贴平均分数:24
回帖的总数量:20 得分贴总数量:5 回帖的得分率:25%
结贴的总数量:18 结贴的总分数:440
无满意结贴数:4 无满意结贴分:80
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:22.22 % 无满意结分率:18.18 %
敬礼!
然后对数组加工,
这样可能会快点!如:[张三][a][10][张三][b][100][李四][a][10][李四][c][50][............]
还有,产品也应该建一张表(产品id,产品名称,单价),我们知道,同一产品它的单价是唯一确定的,所以,这个产品单价会产生数据冗余,若是销售价格,可以保留.数据内容上下功夫,是指,可以把一张表按照数据的内容拆分成几张表.但是这样做的话,可能对其他的查询造成影响.
比如,我们可以按照姓名的字母表顺序,把原来的表拆成32张表,这样,姓张的,姓郑的就会分在一张表里,但是姓李的就会分在另一张表里了.
由于表的长度减少了,所以,每次查询,所比较的次数也就会减少,从而达到优化查询的目的.但是,如果想要查询某个产品都有哪几个人来购买的话,就比较麻烦了.
当然,拆分表的方法,除了字母表顺序以外,还有取HashCode值的方法也可以参考.根据楼主的意思,还是建索引吧.
输出值:购买的物品+价格