国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql中not in,not exists與join的is null效率對比

2024-07-24 12:37:59
字體:
來源:轉載
供稿:網友

以前我剛學php時就問我一朋友mysql中not in,not exists與join的is null這幾個函數他們的性能怎么樣,那樣更好一些,下面我來作一個簡單的測試.

從a表查詢出關聯字段在b表中不出現的所有記錄,現在兩數據表有數據大概都約為2萬5千條記錄,b表相對a表少了230條記錄,所以要查詢a表多出來的記錄,關聯字段是a表的id與b表aid,查詢方法分別用常見的三種方法,代碼如下:

  1. select a.id from a left join b ON a.id=b.aid where b.aid is NULL
  2.  
  3. select a.id from a where a.id not in (select b.aid from b); 
  4.  --Vevb.com
  5. select a.id from a where not exists (select null from b where b.aid=a.id); 

用join的is null方法結果:230 rows in set(39 min 0.48 sec)

not in方法結果:230 rows in set (38 min 7.48 sec)

not exists方法結果:230 rows in set (37 min 52.44 sec)

暈了,為什么都是這樣慢呢?哪里出錯了?

原來b表的aid沒建索引,建立索引后再查詢就快了很多很多,索引后再查詢三種方法大概都只用了0.52sec就出來結果了,索引與沒索引會有這樣強烈的差異,所以對于這種查詢,一定要對關聯字段建立索引,要不你就只有接受龜迅了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 三亚市| 当阳市| 麟游县| 泾阳县| 淮安市| 治多县| 蓬安县| 云梦县| 清河县| 海阳市| 泽普县| 招远市| 铜山县| 江山市| 佳木斯市| 郓城县| 井冈山市| 永胜县| 增城市| 来安县| 陇南市| 衡水市| 临湘市| 昔阳县| 洛隆县| 惠州市| 临沭县| 涪陵区| 吴旗县| 高尔夫| 屏山县| 定远县| 安平县| 红桥区| 永善县| 锦州市| 广州市| 巴东县| 祁门县| 怀远县| 克什克腾旗|