国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乳山市| 甘泉县| 西吉县| 门源| 吉木萨尔县| 衢州市| 乾安县| 娄底市| 三江| 化德县| 和平区| 深水埗区| 大厂| 天水市| 东乌| 富锦市| 广丰县| 阿拉善右旗| 宝清县| 花垣县| 浑源县| 施秉县| 阿拉善盟| 凤冈县| 阿巴嘎旗| 垦利县| 武功县| 于田县| 北京市| 柳林县| 留坝县| 荥阳市| 永定县| 航空| 淅川县| 沙田区| 历史| 尼勒克县| 朝阳市| 靖边县| 双峰县|