我有一个名为TABLE1
的表,它有5列,我很少使用,设计方面应该与该表分开。因此,我创建了一个名为TABLE-REF
的新表,其主键(称为refID
)实际上是TABLE1中相应列的ID。这样我将这5列与主表分开。因为我使用的是MyISAM,所以我没有使用外键。
在极少数情况下,当我需要为TABLE1中的行选择这5列时,选择它们的最有效方法是什么?
SELECT * FROM TABLE-REF WHERE refID={$table1ID}
除了为refID
列编制索引之外,我还可以做些其他改进来提高查询的复杂性吗?
答案 0 :(得分:0)
如果使用连接,则可以将两行都设为一行。所以不再为TABLE中的每一行返回数据库以获取TABLE-REF行。
SELECT
T.*, R.*
FROM `TABLE` T
INNER JOIN `TABLE-REF` R ON R.refID = T.ID
WHERE <your conditions>