可以让库存信息与商品信息放在同一个表
这个想法和我不谋而合,有时候为了需求可以用空间换去时间。我处理的方法是把所有搜索的关键字段全部冗余到库存表里面去,然后只查询库存表。
@时光城主: 这个可以,有时为了查询,会专门设计一个表存储查询条件
@编程点滴: 哈哈,我自己负责一个小项目的升级、维护,遇到很多问题虽然都能解决但是不知道自己所用的方法是对是错。因为只有一个人连个交流的人都没有,感觉自己一直在闭门造车,所以把问题拿出了和大家讨论一下,讨论一下解决问题的思路。
@时光城主: 遇到问题,有那么多问题平台可以提问,大家都可以帮你参考参考
@编程点滴: 也是。
写个连表查询,把关键的信息取出来就行。
链表查询虽然能实现但是效率太低反应时间太长
@时光城主: 效率怎么个低法了,你只取关键字段就好,不连表你只能分布查,你的搜索条件有商品名称、类别名称,而你传进来的值只有一个,还不知道传进来的值是商品名称还是类别名称,所以你的先去匹配商品,又去匹配类别,这样是不是更麻烦,效率更低。
该用的时候就得用,什么都觉得效率低,你还不如干脆把所有商品和类别都设计成一张表。
@龙行天涯: 查询本来就是链表查的但是效率实在太低,查询一次将近10s,根本不能用,而我又找不到很好的解决方案只能来求助了。
@时光城主: 就这么点数据,居然用10s时间。
请问你的查询语句怎么写的,以及你的搜索后的数据展示是如何的,不妨拿出来看看。
还有一种客观因素是你的硬件配置是不是低到了极点。
@龙行天涯: SELECT
a.goods_id,
a.goods_name,
a.selling_price,
a.purchase_price,
a.bar_code,
a.picture
FROM
t_supplier_goods_library a
WHERE a.status = 1
AND EXISTS
(SELECT
1
FROM
t_goods_stock b
WHERE a.goods_id = b.goods_id
AND b.stock_num > 0
AND b.stock_org_id = 10047)
AND (
a.goods_name LIKE '%奶%'
OR a.brand_name LIKE '%奶%'
OR EXISTS
(SELECT
1
FROM
t_goods_type b
WHERE a.goods_type_id_2 = b.goods_type_id
AND b.goods_level = 2
AND b.goods_type LIKE '%奶%')
)
@龙行天涯:
@龙行天涯:
效率有多低?反应时间又多长?啥CPU,啥内存,啥硬盘?
怎么写的SQL语句?
25000个商品而已,又不是25亿商品...
25000商品链表查询反应速度还是很慢的