你还是设计一张表,这表有简单的数据,货物编号,修改前的价格,修改后的价格,修改时间,这样你查询的时候,直接去这个表中查询,然后得到信息,显示,如果这个表中显示的信息不全,你可以再加点字段,争取查询的时候,读取一张表就可以完成。也就是允许数据冗余的出现来减少join的出现。
现在就是这样做的,但是join实现不了,所以就用的函数,结果就是速度慢。
@清海扬波: 你可以增加字段,不需要join
理论上楼主的设计不会造成速度相差4-5。
为什么JOIN实现不了,楼主列出你的语句,及基本的表结构。可以使用JOIN关联。
如果使用的函数的话?是使用表值函数?表值函数在返回的数据量大的情况下,速度比较慢,不行就用存储过程返回价格结果集。
不能用join是因为这个表记录的是货品某“几个字段”的变化,其实这个价格也就是一个数值列,这几个字段的变化都存在这个里面,所以在查询的时候得分字段查,就不能join一个结果集了,不然就出现
join(select price from tb where colname='col1')
join(select price from tb where colname='col2')
join(select price from tb where colname='col3') 这样速度可能更慢,要不然就是临时表,这个已经试过了,速度也差不多。