mysql连接:什么更快?
我的桌子:big_table
+-----------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+------+-----+---------+----------------+ | id | mediumint(7) | NO | PRI | NULL | auto_increment | | title | varchar(255) | NO | | NULL | | | category_id | tinyint(2) | NO | | NULL | | | sub_category_id | tinyint(2) | NO | | NULL | | | width | smallint(5) | NO | | NULL | | | height | smallint(5) | NO | | NULL | | | ratio_width | smallint(5) | NO | | NULL | | | ratio_height | smallint(5) | NO | | NULL | | | size | int(8) | NO | | NULL | | | mime | tinyint(2) | NO | | NULL | | | views | mediumint(7) | NO | MUL | NULL | | | time | int(10) | NO | | NULL | | | file | varchar(255) | NO | | NULL | | +-----------------+--------------+------+-----+---------+----------------+
小桌子
+--------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+--------------+------+-----+---------+-------+ | id | mediumint(7) | NO | PRI | NULL | | | width | smallint(5) | NO | MUL | NULL | | | height | smallint(5) | NO | MUL | NULL | | +--------+--------------+------+-----+---------+-------+
所以更快(例如):
   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是唯一的)
  连接速度没有更快。  如果你有一个合适的索引(即width和height组合的单一索引),那么big_table上的简单选择将会更快。 
  查询执行时间不是唯一需要考虑的参数。 
  如果任何其他表必须加入big_table ,则会导致这些连接的性能big_table 。 
对于可伸缩性,我会藐视地拆分表,将数据分开将确保您不会在这里出现瓶颈。
  确保将最少使用的数据放入表格中,将最常用的数据放入其他表格中。  如果你有一个巨大的text ,把它放在最少使用的表格中,那也是不错的。 
