我有三个关联表,结构大致如下:
a表
ID(自增型),Name,Sex, .....
b表
ID(自增型),RegistryID, .....
c表
ID(自增型), UserID, .....关联方式如下:
a.ID=b.RegistryID
b.ID=C.UserID
a表与b表是一对多的对应,b表与c表也是一对多的对应。 我在数据入库时用的是三个table,总是写完a表后,last a表取出最大的a.ID,然后写给b表的RegistryID,再last b表取出最大的b.ID,最后写给C表的UserID,这样用户数一多和数据量一大,数据就锁库。
后来我写个存储过程用max函数取出a、b两表的ID,还是锁库,请问该怎样解决此问题?用触发器行不行?
sql性能应该问题不大,我每晚都定时更新表索引。
a表
ID(自增型),Name,Sex, .....
b表
ID(自增型),RegistryID, .....
c表
ID(自增型), UserID, .....关联方式如下:
a.ID=b.RegistryID
b.ID=C.UserID
a表与b表是一对多的对应,b表与c表也是一对多的对应。 我在数据入库时用的是三个table,总是写完a表后,last a表取出最大的a.ID,然后写给b表的RegistryID,再last b表取出最大的b.ID,最后写给C表的UserID,这样用户数一多和数据量一大,数据就锁库。
后来我写个存储过程用max函数取出a、b两表的ID,还是锁库,请问该怎样解决此问题?用触发器行不行?
sql性能应该问题不大,我每晚都定时更新表索引。
检查a,b,c表是否有关系
如果有关系,将其删除
然后用你的方法进行数据更新
不过,建议你用query,不要用table
如果用table,则将提取数据行设置少一些