KiKi

导航

mysql数据查询--多对多关系查询

   以前关于多对多关联关系建表一直采用三张表的模式,但是今天了解到一种新的关于数据表的设计(多对多的关系),将关联关系存到其中的一张表的某个字段中使用逗号分隔,然后进行查询。引发两种表设计讨论的前提:如果将来表足够大以至于关联关系表需要分表时,该何去何从......

 

一   多对多的数据表如何设计

 1  三张表设

 

2  两张表设计

 

二 对比执行耗时

     --测试数据:test_A约8w数据,  test_B约1w数据 ,  test_AB约40w数据

目标:查询B表某个值对应A表中所有的名字

对比:查询性能上存在近百倍的差距

           

         

目标:去掉B表某个值对应A表中所有的关联

对比一:修改性能上存在近30倍的差距

              

             

 三 结论

     上述两个对比测试发现,多对多的关联关系设计表时,采取关联表似乎更适合平时的日常业务。但是确实存在一个问题, 业务不断发展,数据表的数据多到需要分表时,如何近可能小的影响业务,以最小开发量进行重构改版。

 

posted on 2021-08-05 18:23  乖乖0943  阅读(760)  评论(0编辑  收藏  举报