国产探花免费观看_亚洲丰满少妇自慰呻吟_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就出來結果了,索引與沒索引會有這樣強烈的差異,所以對于這種查詢,一定要對關聯字段建立索引,要不你就只有接受龜迅了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高雄县| 临高县| 清新县| 盖州市| 伊宁市| 太湖县| 建始县| 当阳市| 法库县| 石嘴山市| 丽水市| 苍山县| 开封市| 三门峡市| 贵南县| 静宁县| 巩留县| 仙居县| 新郑市| 定日县| 襄樊市| 错那县| 陈巴尔虎旗| 苍山县| 陇南市| 无为县| 安陆市| 东乡| 伊通| 军事| 开鲁县| 响水县| 安陆市| 平阳县| 枞阳县| 碌曲县| 晋州市| 黎川县| 鄂州市| 九江县| 新郑市|