我有一个用于文本的多语言表。 (专栏:hu,en,de,sr,...) 行包含文本。 网站中的每个文本都存储在此表中。所以我在不同的地方有很多选择查询。
哪个更好,更快?
许多只有1-1结果的选择查询
SELECT en FROM langtexts WHERE id='41';
SELECT en FROM langtexts WHERE id='63';
SELECT en FROM langtexts WHERE id='89';
或者一个包含所有文本的查询,存储在数组中,并使用此数组输出文本。
SELECT en FROM langtexts
该表包含大量带有大文本的行。
答案 0 :(得分:0)
你提到:
选择查询位于不同文件的不同位置。在输出文本之前,我不知道所有确切的ID。我只能选择没有id的所有文本。所以这对我来说毫无用处。
但是,您可以通过将变量存储在PHP $ _ SESSION 变量中来在不同的PHP脚本之间传递变量。
我认为实现目标的方法是使用查询的所有结果更新 $ _ SESSION ['GUIMessages'] 。
这个变量实际上是一个包含相应数据库列中数据的向量,然后将存在于内存中,用于用户会话的剩余生命周期。
在这种情况下,您可能保存一些处理时间。但是,如果许多用户使用相同的语言,这种方法不会扩展,我希望它实际上会产生最差的结果。这是因为在会话中会增加开销并降低性能,因为“GUIMessages”变量将为每个用户保留 。由于PHP中的会话默认存储在文件中,因此您实际上会引入额外的磁盘I / O操作。
如果问题对于您作为程序员来说很方便,为什么不定义一个函数 getGUIMessages 来处理SQLQueries并接收参数 key 并返回数组消息?然后,您可以在任何需要的地方调用它,而无需在整个地方传播SQL查询。
答案 1 :(得分:-1)
第二个是更快的解决方案,您可以在一个查询中获取所有必需的文本,并通过您想要使用的索引数组使用。