具有多个leftjoin的Mysql

时间:2015-06-27 14:03:15

标签: php mysql angularjs

您好我在web like this工作,具有此结构

ALL Matchs Packets{
                    Soccer{
                               France{
                                     Liga A:{
                                             Team A vs Team B{
                                                Bettype A{}
                                                Bettype V{}
                                                Bettype AA{}
                                                Bettype DD{}
                                              }
                                             Team C vs Team D{
....
                                              }   
                                             Team E vs Team F{
....
                                              }      
                                            }
                                     Liga B:{...}                                       
                                     Liga C:{...}
                                     }
                               Spain{
                                     Liga A:
                                     Liga B:
                                     Liga C:
                                     }
                               England{
                                     Liga A:
                                     Liga B:
                                     Liga C:
                                     }
                     },
                     Basket{
                     ...
                     ...
                     }

                   }

我有一个主表,其中包含match,Id_match,Sport,Country,League,Team A,Team B等的详细信息。 另外,我有一个每个bettype的表格,包含id_match和其他特定数据。 我正在使用50多个表,我的网站是php,数据库是mysql。然后我根据每个bettype(在1个咨询中的所有leftjoin)与leftjoin进行咨询,并且与id_event链接,我的咨询返回json的结果,并且在我的html5中,我使用angularjs进行显示。 有些匹配包含所有表的数据,但其他匹配在某些bettypes中显示为null,这是可以的,因为每个bettype都是特定的。 我正在使用Angularjs然后我只需要调用一次数据库,因为我可以过滤,隐藏,分组等;在客户端

我担心的是优化,我想知道这样的咨询是否合适,因为,想象这样做300场比赛和60桌有投注类型。

我认为在创建一个菜单来过滤Sport-> Country->联盟并且只为这个特定组进行咨询,为此,我只使用了我的主表(只有1个表),但是我的问题是的,如果很多人多次呼叫数据库,会发生同样的磨损吗?或者这是解决方案?

1 个答案:

答案 0 :(得分:0)

由于访问者特定的过滤将在客户端,因此所有访问者将获得相同的完整数据集。可以缓存和更新json文件,例如每一分钟。 数据库上的负载将与访问者数量无关。

所有需要加入但很少更新的数据都可以缓存在一个表中。更新过日常。查询将不那么复杂和快速。