SQL:同一表上的多个连接的性能
Posted
技术标签:
【中文标题】SQL:同一表上的多个连接的性能【英文标题】:SQL: Performance of Multiple Joins on Same Table 【发布时间】:2012-02-13 04:25:27 【问题描述】:Stack Overflow 的访问者,
我正在用 php 构建一个研究应用程序,用户可以在其中输入它自己的变量。这些变量通常是数字的。可以为每个数值附加一个文本标签,以提高数据的可读性。即记录显示为:
记录 1:值 0、值 1、值 1、值 3、值 2
记录2:..
代替:
记录 1:0、1、1、3、2
记录2:..
为了将数值数据转换为对应的标签,我必须对保存文本表示(标签)的(相同)表执行大量连接。我的问题是双重的:
-
在 mysql 中对同一个表(别名)执行多个连接是否会对性能产生很大影响?
这种连接的最佳 SQL 语法是什么?
当然,我欢迎任何其他建议!
期待你的回答!
汤姆
【问题讨论】:
删除了我的答案,但认为 OP 的这条评论值得在这里发布给其他人:“用户完全有可能拥有 100 个变量,每次检索一个变量时需要 100 次连接到标签表记录。我想知道仅通过 SQL(由于灵活性而首选)或执行两个单独的查询,用 PHP 中的标签替换数据,在性能上会有多大差异?" 【参考方案1】:为什么没有这样的记录结构:
table `user_variables`:
user_id int
var_name char,
var_value char
不需要自连接,因为每个名称/值对都有自己的记录。
【讨论】:
以上是关于SQL:同一表上的多个连接的性能的主要内容,如果未能解决你的问题,请参考以下文章