MySql in子句 效率低下優化

2021-08-22 19:34:12 字數 531 閱讀 5972

背景:

更新一張表中的某些記錄值,更新條件來自另一張含有200多萬記錄的表,效率極其低下,耗時高達幾分鐘。

update clear_res set candelete=0 where resid in

( select distinct resourceid from att_attentionresult where important=0

);

耗時 365s

優化後

update clear_res set candelete=0 where resid in

( select resourceid from (

select distinct resourceid from att_attentionresult where important=0

) as tmp

);

耗時 1.41s

總結:對於where *** in 子句效率極其低下問題,經過in的子句外包裝一層select *** from( ... )as tmp 後,極大優化效率。

mysql in子句 MySQL IN 子句

可以使用 in 子句代替許多 or 條件。要想理解 in 子句,還以表 employee tbl 為例,它的所有記錄如下所示 mysql select from employee tbl id name work date daily typing pages 1 john 2007 01 24 2...

Mysql In子句刪除

經測試mysql in子句中只能放一級子查詢,後來改用虛表,測試可用,記錄下 begin create table temptable1 as select zpwas.stock id from zen products with attributes stock as zpwas where z...

從效率低下說起

很多人都覺得自己很忙很忙,忙得總是有事情顧不過來。我在法學院時,也曾經常需要熬夜複習或趕作業。但我那時有個朋友,s.h,她的成績比我好,參加的活動比我多,找工作時也很順利 但她卻能每晚10點半左右準時睡覺,這在law students當中簡直是難以想象的。那時我就覺得,很忙 是乙個應該讓自己羞愧的藉...