加速查询,怎么设计一对多 ?

jldzy 2015-05-18 10:20:39
现在有一张表tba(Id int, Type int, Value int) , 主键是三个字段(Id,Type,Value). 一个Id, Type, 可以对应多个Value. 例如
Id Type Value
1000 1 10
1000 1 20
1000 1 30
1001 1 10
1001 1 40

前端 传入2个参数( IsAll 0:包含其中一个Value,1:全部包含所有Value ,Value)

例如 传入参数 1,‘10,20’ 则要求 同一Id Type 下面 必须 包含10,20 的Value , 则返回Id 1000
例如 传入参数 0,‘10,20’ 则要求 同一Id Type 下面 包含其中一个10,20 的Value , 则返回Id 1000,1001
参数传入的Value是不确定的,这个表数据量大概是5000万 左右,


开始想把所有的Value 放在一个字段,用, 隔开,但是这样查询用Like 效率比较低, 有什么好的方案 方便查询???
Id Type Value
1000 1 10,20,30
1001 1 10,40


...全文
182 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiangqing 2015-05-19
  • 打赏
  • 举报
回复
我觉得value,Id,Type建聚焦索引要好一些
shoppo0505 2015-05-19
  • 打赏
  • 举报
回复
引用 3 楼 jldzy 的回复:
[quote=引用 1 楼 shoppo0505 的回复:] 要是我的话,我会把value参数作为表格参数给入。 那所有问题就都解决了
如果传进去了,直接做关联还是 ?[/quote] 传进去,直接inner join就行
jldzy 2015-05-19
  • 打赏
  • 举报
回复
引用 2 楼 xiaoxiangqing 的回复:
我觉得value,Id,Type建聚焦索引要好一些
这个要测试下,大概是这样的情况, 1 个ID 可以对应 10个 Type, 一个Type 对应 64个Value
jldzy 2015-05-19
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
要是我的话,我会把value参数作为表格参数给入。 那所有问题就都解决了
如果传进去了,直接做关联还是 ?
shoppo0505 2015-05-19
  • 打赏
  • 举报
回复
要是我的话,我会把value参数作为表格参数给入。 那所有问题就都解决了

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧