替换mysql中的相关表以在redis中存储数据

替换mysql中的相关表以在redis中存储数据,mysql,redis,Mysql,Redis,我有一个竞赛表格,每个竞赛都有承包商和客户(他们存储在另一个表格中) 要求展示与承包商和客户的所有比赛。在mysql中,它是通过join-s完成的,这使查询变得复杂(在实际项目中) 这些连接(I 5-6)。查询执行的时间很长,特别是当有大量记录时 你认为如果你制作了一个简单的竞争表,而不连接数据库mysql中的表,那么承包商和客户就可以移动了吗 在Redis中,考虑到使用PHP将数据组装和传输到模板这一事实,可以大大提高数据样本的性能?谢谢大家! 编辑: 下面是一个示例查询(dql,我使用版本2

我有一个竞赛表格,每个竞赛都有承包商和客户(他们存储在另一个表格中)

要求展示与承包商和客户的所有比赛。在mysql中,它是通过join-s完成的,这使查询变得复杂(在实际项目中) 这些连接(I 5-6)。查询执行的时间很长,特别是当有大量记录时

你认为如果你制作了一个简单的竞争表,而不连接数据库mysql中的表,那么承包商和客户就可以移动了吗 在Redis中,考虑到使用PHP将数据组装和传输到模板这一事实,可以大大提高数据样本的性能?谢谢大家!

编辑: 下面是一个示例查询(dql,我使用版本2的原则):

从PortalEnderBundle中选择t、o、p、c、w、m、f、父项、cparent、com、party:Tender t
左加入t.o
左JOIN o.parent
左连接t.p
左连接t.c
左连接c
左连接t.cf
左连接t.w
左连接t.m
左连接t.f文件
LEFT JOIN t.com评论
左派加入t党
左入党

其中((t.opening_at为NULL)或(t.opening_at为NOT NULL,t.opening_at为NOT NULL,t.opening_at为NOT NULL),当您说SQL查询很慢时:您确定在表上设置了正确的索引吗?使用正确的索引通常会大大加快查询速度,特别是在涉及连接的情况下。是的,索引排列在连接字段上(外键),以及在这些领域,这是采样和排序的条件。事实上,除了承包商和客户,他们还有更多的成员——这对他们来说真的很难(竞赛和参与者之间的联系——多对多)
SELECT t, o, p, c, w, m, f, parent, cparent, com, party FROM PortalTenderBundle:Tender t
                         LEFT JOIN t.organization o
                         LEFT JOIN o.parent parent
                         LEFT JOIN t.provision p
                         LEFT JOIN t.contractors c
                         LEFT JOIN c.parent cparent
                         LEFT JOIN t.contractors cf
                         LEFT JOIN t.winner w
                         LEFT JOIN t.manager m
                         LEFT JOIN t.files f
                         LEFT JOIN t.comments com
                         LEFT JOIN t.party party
                         LEFT JOIN t.party party_f
                         WHERE ((t.opening_at IS NULL) OR (t.opening_at IS NOT NULL AND t.opening_at <= CURRENT_TIMESTAMP()))