在一个系统中,使用mysql数据库,我有两张表:
设备异常表,A:(a_id, ..., b_id) b_id为foreign key,b_id为设备id
设备信息表,B:(b_id, ..., csite) csite为工地名称
以上两张表满足第三范式。
A有50000数据,B有100数据我现在系统有需求: 对工地分组 统计设备异常数量 并排序, sql:select csite, count(*) as z
from A left join B
group by csite
on A.b_id = B.b_id
order by z desc逻辑上没有问题,但我想建立索引优化,我不知道在mysql中怎么对两张表建立关联的索引。
如果将csite信息copy到A表中,则会破坏第三范式。
是不是这种情况只能在A表中设置csite冗余信息以建立索引?sql
设备异常表,A:(a_id, ..., b_id) b_id为foreign key,b_id为设备id
设备信息表,B:(b_id, ..., csite) csite为工地名称
以上两张表满足第三范式。
A有50000数据,B有100数据我现在系统有需求: 对工地分组 统计设备异常数量 并排序, sql:select csite, count(*) as z
from A left join B
group by csite
on A.b_id = B.b_id
order by z desc逻辑上没有问题,但我想建立索引优化,我不知道在mysql中怎么对两张表建立关联的索引。
如果将csite信息copy到A表中,则会破坏第三范式。
是不是这种情况只能在A表中设置csite冗余信息以建立索引?sql
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货