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

首頁 > 數據庫 > MySQL > 正文

mysql關聯子查詢的一種優化方法分析

2024-07-24 13:09:11
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了mysql關聯子查詢的一種優化方法,結合實例形式分析了針對MySQL的關聯子查詢進行優化的技巧,需要的朋友可以參考下
 

本文實例講述了mysql關聯子查詢的一種優化方法。分享給大家供大家參考,具體如下:

很多時候,在mysql上實現的子查詢的性能較差,這聽起來實在有點難過。特別有時候,用到IN()子查詢語句時,對于上了某種數量級的表來說,耗時多的難以估計。本人mysql知識所涉不深,只能慢慢摸透個中玄機了。

假設有這樣的一個exists查詢語句:

select * from table1where exists  (select * from table2 where id>=30000 and table1.uuid=table2.uuid);

table1為十萬行級的表,table2為百萬行級的表,本機測試結果用時2.40s。

通過explain可以看到子查詢是一個相關子查詢(DEPENDENCE SUBQUERY); Mysql會首先對外表table1進行全表掃描,然后根據返回的uuid逐次執行子查詢。如果外層表是一個很大的表,我們可以想象查詢性能會表現得比此次測試更糟糕。

mysql,關聯子查詢

一種簡單的優化方案為使用inner join的方法來代替子查詢, 查詢語句則可以改為:

復制代碼代碼如下:
select * from table1 innner join table2 using(uuid) where table2.id>=30000;

 

本機測試結果用時0.68s。

通過explain可以看到mysql使用了SIMPLE類型(子查詢或union以外的查詢方式); Mysql優化器會先過濾table2,然后對table1和table2做笛卡爾積得出結果集后,再通過on條件來過濾數據。

mysql,關聯子查詢

當然了,并不是所有情況下關聯子查詢的性能都會差;具體效果需要進行實際的測試才能得出結果。



注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 诏安县| 和平县| 鸡泽县| 昌平区| 宁蒗| 佛冈县| 靖江市| 阿坝县| 内乡县| 工布江达县| 怀柔区| 安国市| 阜城县| 调兵山市| 仙居县| 安庆市| 济南市| 兴国县| 汤原县| 石河子市| 贵港市| 兴隆县| 昭苏县| 九龙县| 大名县| 怀化市| 喀喇沁旗| 浦县| 文化| 赤壁市| 清徐县| 青浦区| 南靖县| 石狮市| 宁陕县| 会东县| 石台县| 额尔古纳市| 河间市| 德阳市| 南汇区|