【问题标题】:Getting Labels of id's获取 id 的标签
【发布时间】:2012-06-04 20:22:57
【问题描述】:

获取 id 标签的最佳方法是什么。

这是我面临的问题。

我有很多只包含 id 的表(subject_id、level_id、place_id 等)

显示这些 id 的标签而不进行复杂的 sql 查询的最佳方法是什么(至少有 6 个 id)?

其他不太好的选项是调用 get_label(id,table,lang)

但你当然可以看到每一列的问题(总查询数 = 列 * 行数)

有没有更好的解决方案,或者我在没有对 6 个表进行连接的情况下被卡住了?

如果有帮助,我正在使用 kohana

这就是我所拥有的......

以及 subject_id 的主题表:

我为每个 field_id 都有一个对应的表。

就性能而言,在需要时进行连接或仅调用查询以获取特定标签更好。 ?

【问题讨论】:

  • id 的“标签”是什么意思?
  • 修改了我的问题......所以我不会得到 (subject_id = 3) 我会得到 (Chemistry)
  • 但该数据仅在主题表中......所以当然你必须加入主题表才能获得它!
  • 是的,我认为你被“卡住”了一个连接,但是 IMO 的开销应该很少甚至没有。
  • 翻译表有多大?是否可以将它们缓存在内存中?

标签: php mysql database kohana database-performance


【解决方案1】:

您想为此使用 SQL JOIN

SELECT t1.*, t2.subject_en, ...
FROM table1 t1
JOIN table2 t2 ON (t2.id = t1.subject_id)

JOIN 的性能要好得多 - 您只有一个查询,可以由数据库引擎正确优化,同时执行 SELECT 同时迭代初始查询中的行将为您提供 n+1 个单独的查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    相关资源
    最近更新 更多