多个sql选择或一个组合选择

时间:2016-01-27 14:24:50

标签: php mysql select

我有一个用于文本的多语言表。 (专栏:hu,en,de,sr,...) 行包含文本。 网站中的每个文本都存储在此表中。所以我在不同的地方有很多选择查询。

哪个更好,更快?

  1. 许多只有1-1结果的选择查询

    SELECT en FROM langtexts WHERE id='41';
    SELECT en FROM langtexts WHERE id='63';
    SELECT en FROM langtexts WHERE id='89';
    
  2. 或者一个包含所有文本的查询,存储在数组中,并使用此数组输出文本。

    SELECT en FROM langtexts
    
  3. 该表包含大量带有大文本的行。

2 个答案:

答案 0 :(得分:0)

你提到:

  

选择查询位于不同文件的不同位置。在输出文本之前,我不知道所有确切的ID。我只能选择没有id的所有文本。所以这对我来说毫无用处。

但是,您可以通过将变量存储在PHP $ _ SESSION 变量中来在不同的PHP脚本之间传递变量。

我认为实现目标的方法是使用查询的所有结果更新 $ _ SESSION ['GUIMessages']

这个变量实际上是一个包含相应数据库列中数据的向量,然后将存在于内存中,用于用户会话的剩余生命周期。

在这种情况下,您可能保存一些处理时间。但是,如果许多用户使用相同的语言,这种方法不会扩展,我希望它实际上会产生最差的结果。这是因为在会话中会增加开销并降低性能,因为“GUIMessages”变量将为每个用户保留 。由于PHP中的会话默认存储在文件中,因此您实际上会引入额外的磁盘I / O操作。

如果问题对于您作为程序员来说很方便,为什么不定义一个函数 getGUIMessages 来处理SQLQueries并接收参数 key 并返回数组消息?然后,您可以在任何需要的地方调用它,而无需在整个地方传播SQL查询。

答案 1 :(得分:-1)

第二个是更快的解决方案,您可以在一个查询中获取所有必需的文本,并通过您想要使用的索引数组使用。