首頁>Club>
6
回覆列表
  • 1 # 若餘

    根據實際的情況,需要控制IN查詢的範圍。不走索引到原因有以下幾點

    IN 的條件過多,會導致索引失效,走索引掃描IN 的條件過多,返回的資料會很多,可能會導致應用堆內記憶體溢位。

  • 2 # 是國鋒呀

    不一定哦,如果是MySql你可以透過 sql前面加上 explain select Column Name1,Column Name2,Column Name3 from table;

    排查是否走索引依次從好到差:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,ALL。

    1.索引列的資料長度能少則少。

    2.索引一定不是越多越好,越全越好,一定是建合適的。

    3.匹配列字首可用到索引 like 9999%,like %9999%、like %9999用不到索引;

    4.Where 條件中 not in 和 <>操作無法使用索引;匹配範圍值,order by 也可用到索引;

    5.多用指定列查詢,只返回自己想到的資料列,少用select *;

    6.聯合索引中如果不是按照索引最左列開始查詢,無法使用索引;聯合索引中精確匹配最左前列並範圍匹配另外一列可以用到索引;

    7.聯合索引中如果查詢中有某個列的範圍查詢,則其右邊的所有列都無法使用索引。

  • 中秋節和大豐收的關聯?
  • 寶寶斜視可以買重疾險嗎?