Php 多个连接与缓存的单个查询?

Php 多个连接与缓存的单个查询?,php,mysql,memcached,innodb,Php,Mysql,Memcached,Innodb,我曾经在一个复杂的连接和多个查询中看到过类似的问题,在这种情况下,答案总是“视情况而定”哈哈,但我想知道我是否可以得到关于方向的输入。希望它不会太复杂而难以解释 我正在显示一个页面,该页面必须从大约3-4个不同的表中提取信息。假设我们有一个人可能属于一个俱乐部,这个俱乐部有很多活动。我必须从俱乐部、个人、活动信息等获取信息 现在我把它们放在3-4个单独的表中,但是我的events表有大量的列,我很确定这些列没有被规范化,但是我保持这种方式,这样我最多不必做3-5次连接。现在,使用一个小数据集似乎

我曾经在一个复杂的连接和多个查询中看到过类似的问题,在这种情况下,答案总是“视情况而定”哈哈,但我想知道我是否可以得到关于方向的输入。希望它不会太复杂而难以解释

我正在显示一个页面,该页面必须从大约3-4个不同的表中提取信息。假设我们有一个人可能属于一个俱乐部,这个俱乐部有很多活动。我必须从俱乐部、个人、活动信息等获取信息

现在我把它们放在3-4个单独的表中,但是我的events表有大量的列,我很确定这些列没有被规范化,但是我保持这种方式,这样我最多不必做3-5次连接。现在,使用一个小数据集似乎没问题,但我不禁想知道,将它们分成3-4个单独的查询,然后缓存其中一些查询的结果是否会更快?events表经常更新,因此我可以看到它是无效的,但是organization和user表没有更新,因此我可以看到后一种解决方案使它受益。你们都推荐哪一种


与此相关的另一个原因是我的events表有大量的列,其中一些列存储经常更新的数据或大型文本列来存储序列化的键/值模板数据。将其划分到另一个表中是否明智,这样我就有了“常规”数据,然后是频繁更新的事件数据?感谢您的帮助。

如果不针对您的特定数据集和表格以及它们的使用频率进行测试,就没有好的答案

看起来你已经很好地掌握了每种方法的优缺点。如果您有空间缓存大量数据,或者某些俱乐部被许多不同的用户访问,那么您最好缓存每一块数据

如果已经设置了memcached,我建议将其分离出来并缓存每个查询。当数据发生变化时,要使正确的缓存失效,需要做一些额外的工作,但无论哪种方式,缓存都是一个提高性能的好主意,这会提前实现

我现在不会太担心这个。当你有其他事情可以做的时候,过早的优化只会花费你很多时间


只要让它工作起来,然后如果以后遇到性能问题,您就可以分析应用程序并集中精力优化真正需要它的地方。

您是否尝试过使用
EXPLAIN
来大致了解瓶颈所在?