我的桌子:big_table
+-----------------+--------------+------+-----+--- ------+----------------+ | 领域 | 类型 | 空 | 钥匙 | 默认 | 额外 | +-----------------+--------------+------+-----+--- ------+----------------+ | 编号 | 中型(7) | 否 | 优先级 | 空 | 自动增量 | | 标题 | varchar(255) | 否 | | 空 | | | 类别 ID | 小整数(2) | 否 | | 空 | | | sub_category_id | 小整数(2) | 否 | | 空 | | | 宽度 | 小整数(5) | 否 | | 空 | | | 身高 | 小整数(5) | 否 | | 空 | | | ratio_width | 小整数(5) | 否 | | 空 | | | ratio_height | 小整数(5) | 否 | | 空 | | | 尺寸 | 整数(8) | 否 | | 空 | | | 哑剧 | 小整数(2) | 否 | | 空 | | | 意见 | 中型(7) | 否 | 穆尔 | 空 | | | 时间 | 整数(10) | 否 | | 空 | | | 文件 | varchar(255) | 否 | | 空 | | +-----------------+--------------+------+-----+--- ------+----------------+
小桌子
+--------+-------------+------+-----+---------+-- -----+ | 领域 | 类型 | 空 | 钥匙 | 默认 | 额外 | +--------+-------------+------+-----+---------+-- -----+ | 编号 | 中型(7) | 否 | 优先级 | 空 | | | 宽度 | 小整数(5) | 否 | 穆尔 | 空 | | | 身高 | 小整数(5) | 否 | 穆尔 | 空 | | +--------+-------------+------+-----+---------+-- -----+
那么什么更快(示例):
SELECT * FROM `big_table` WHERE `width` =1920 AND `height`=1080;
或使用加入
select big_table.*
from small_table
left join small_table small_table2
ON (small_table.id=small_table2.id
and `small_table`.`height` = '1080')
left join big_table
ON (big_table.id=small_table.id)
where small_table.width = '1920';
或加入同一张桌子?
select big_table.*
from big_table as big_table1
left join big_table big_table2
ON (big_table1.id=big_table2.id and `big_table1`.`height` = '1080')
left join big_table
ON (big_table.id=big_table1.id)
where big_table1.width = '1920';
还是有一些更好的解决方案,更好的选择?(在两个表上我都可以使用索引(宽度和高度),但只有 ID 是唯一的)