关联表查询 要比 一张表查询慢多少??

于娜 2008-04-10 12:57:37

有N个分类,有一条信息分别属于其中的A类,B类,C类,D类.
目前的做法是在这条信息的一个字段(class)保存所属(A|B|C|D)分类
查看B分类的时候SQL语句为: "select class from [表] where class like '%B% ' "
但是这样写的话,会使索引失去作用,记录多的话很慢.


于是我想到用下面的表结构重新设计。

类别表:
类别id 类别名称

信息表:
newsid 内容

关联表:
newsid 类别id



---------------------------------------------

上面第2个管理表方法,比第1个方法 能慢多少????


...全文
166 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
糊糊 2008-04-13
  • 打赏
  • 举报
回复
你们说的能用建立关系来确定吗?

access和mssql都有关系的。
糊糊 2008-04-13
  • 打赏
  • 举报
回复
你们说的能用建立关系来确定吗?

access和mssql都有关系的。
糊糊 2008-04-13
  • 打赏
  • 举报
回复
你们说的能用建立关系来确定吗?

access和mssql都有关系的。
于娜 2008-04-10
  • 打赏
  • 举报
回复

有N个分类,有一条信息分别属于其中的A类,B类,C类,D类.
目前的做法是在这条信息的一个字段(class)保存所属(A|B|C|D)分类
查看B分类的时候SQL语句为: "select class from [表] where class like '%B% ' "
但是这样写的话,会使索引失去作用,记录多的话很慢.


于是我想到用下面的表结构重新设计。

类别表:
类别id 类别名称

信息表:
newsid 内容

关联表:
newsid 类别id



---------------------------------------------

上面第2个关联表方法,比第1个方法 能慢多少????
JL99000 2008-04-10
  • 打赏
  • 举报
回复
哥哥很生气
一品梅 2008-04-10
  • 打赏
  • 举报
回复
于娜mm没有结帖的好习惯,问题很严重...
JL99000 2008-04-10
  • 打赏
  • 举报
回复
我是这么认为的,如果你的数据量很大,而且查询操作很频繁,使用第二中设计,like不走索引路,他进行表扫描,查询性能差很多
数据量越大越慢

纠正一下上面的话:
在各个表上见索引,是为了加速连接查询,
其实有很多设计是这么做,
这么做也有一个弊病,就是要对多表进行维护,比如插入和修改的时候,必须还要管理关联表

JL99000 2008-04-10
  • 打赏
  • 举报
回复
用第二种方法无非就是建立连接来查询
例如这样的
select * from 信息表 a inner join 关联表 b on a.newsid=b.newsid
inner join 类别表 c on b.类别id =c.类别id

---
在各个表上见索引,这样的话查询起来会比以前的快,但更新插入的时候会变慢

34,593

社区成员

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

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