Mysql中WhereIn和Join的性能比对

在mysql中使用whereIn和Join表性能区别,

在查询多表的关系的时候,存在两种查询方法。

一种是找出对应关系的ID,然后根据对应关系的ID的集合,到目标表中查询出结果。
另外一种,是联立两张表格,进行join查询。

之前项目中选择一个使用了where in 的条件,但是where in 的 list 如果太大,就会导致查询异常很慢,通常如果list在1000以内,都能在100ms内完成检索,但是list大于5000的时候,基本上查询时间接近1s秒钟。 (这一切都是建立在使用索引,并且是聚集索引的情况下)

如果直接使用join来处理两张表,那么只要筛选完条件,查询基本上都能够限制在100ms内完成。

使用where in的时候,能够使用的索引,但是,由于查询的where in 条件,每一个条件都需要扫描表,所以相对来说要慢很多。

你可能感兴趣的:(web,PHP)