问一个关于A表是否要加一个是和否的状态字段(叫state)的问题
答案:1 悬赏:20 手机版
解决时间 2021-01-19 17:42
- 提问者网友:嗝是迷路的屁
- 2021-01-19 03:48
问一个关于A表是否要加一个是和否的状态字段(叫state)的问题
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-01-19 05:23
不需要加状态字段。
加状态字段的逆势:
1) 多了一个字段
2) 查询时,因为该字段值仅仅有两种值“是”和"否",用来筛选时基本会扫描整张表,效率不高;而如果用链接b表,并且A表id和b表fk_A都有索引的情况下,会执行索引扫描,效率比较高
另外,查询语句不要使用在where中去count,如果B表中fK_A的值具有唯一性,可以用内连接进行查询:
select aa.*
from A aa
inner join B bb on bb.fk_A = aa.id如果B表的fk_A值不具有唯一性,那么使用exists来做条件:
select aa.*
from A aa
where exists (select bb.id from B bb where bb.fk_A = aa.id)
加状态字段的逆势:
1) 多了一个字段
2) 查询时,因为该字段值仅仅有两种值“是”和"否",用来筛选时基本会扫描整张表,效率不高;而如果用链接b表,并且A表id和b表fk_A都有索引的情况下,会执行索引扫描,效率比较高
另外,查询语句不要使用在where中去count,如果B表中fK_A的值具有唯一性,可以用内连接进行查询:
select aa.*
from A aa
inner join B bb on bb.fk_A = aa.id如果B表的fk_A值不具有唯一性,那么使用exists来做条件:
select aa.*
from A aa
where exists (select bb.id from B bb where bb.fk_A = aa.id)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯