MySQL選擇驅動表與被驅動表是基于優(yōu)化器優(yōu)化后的,小表是驅動表,大表是被驅動表。 基于優(yōu)化器優(yōu)化后開篇的 博文A與B 結論成立。
創(chuàng)新互聯(lián)公司-專業(yè)網站定制、快速模板網站建設、高性價比興縣網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式興縣網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋興縣地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。
table中檢索到與之匹配的行。Outer table: 小表、驅動表 Inner table: 被驅動表、大表 (可用ordered提示來改變CBO默認的驅動表,可用USE_NL(table_name1 table_name2)提示來強制使用nested loop。
實則為 驅動表扇出*被驅動每次掃描行數(shù)*filtered*成本常數(shù) ,即 20*200*10%*0.2 。
首先,MySql join連接可以連接兩張或更多的數(shù)據(jù)表,但是并沒有誰是“驅動表”之說。Join分為inner join內連接和outer join外連接兩種形式,外連接還可以進一步分為左連接和右連接。
結果顯示t2是驅動表,t1是被驅動表。t2是1000條數(shù)據(jù)按理說是大表應該是被驅動表,與 博文A , 博文B 的結論又不一致了。
首先,MySql join連接可以連接兩張或更多的數(shù)據(jù)表,但是并沒有誰是“驅動表”之說。Join分為inner join內連接和outer join外連接兩種形式,外連接還可以進一步分為左連接和右連接。
因為表連接查詢時后面的表必然會進行全表掃描,所以數(shù)據(jù)少的放后面,提高sql語句的執(zhí)行效率。操作方法如下:首先優(yōu)化原則,小表驅動大小,即小的數(shù)據(jù)集驅動大的數(shù)據(jù)集。
a inner join b,MySQL會選擇相對小的表作為驅動表,大的表作為被驅動表。這里的大和小,你可以理解為真正參與關聯(lián)查詢的數(shù)據(jù)行多的為大表,少的為小表。
開啟慢查詢日志,設置閥值,比如超過5秒就是慢SQL,并把它抓取出來。explain+慢SQL 分析 show profile 查詢SQL在MySQL服務器里面的執(zhí)行細節(jié)和聲明周期。
如果是JOIN的話,它是走嵌套查詢的。小表驅動大表,且通過索引字段進行關聯(lián)。如果表記錄比較少的話,還是OK的。大的話業(yè)務邏輯中可以控制處理。數(shù)據(jù)庫是最底層的,瓶頸往往是數(shù)據(jù)庫。
MySQL選擇驅動表與被驅動表是基于優(yōu)化器優(yōu)化后的,小表是驅動表,大表是被驅動表。 基于優(yōu)化器優(yōu)化后開篇的 博文A與B 結論成立。
首先,MySql join連接可以連接兩張或更多的數(shù)據(jù)表,但是并沒有誰是“驅動表”之說。Join分為inner join內連接和outer join外連接兩種形式,外連接還可以進一步分為左連接和右連接。
一般情況下,遵循如下規(guī)則:a left join b,a是驅動表,b是被驅動表。a right join b,b是驅動表,a是被驅動表。a inner join b,MySQL會選擇相對小的表作為驅動表,大的表作為被驅動表。
然后再從驅動表結果集中拿出另一條記錄,再一次把被驅動表的記錄加載到內存中一遍,周而復始,驅動表結果集中有多少條記錄,就得把被驅動表從磁盤上加載到內存中多少次。
實則為 驅動表扇出*被驅動每次掃描行數(shù)*filtered*成本常數(shù) ,即 20*200*10%*0.2 。
標題名稱:mysql怎么選擇驅動表 mysql80驅動類
URL鏈接:http://www.rwnh.cn/article35/dgdhgsi.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站制作、、網站改版、小程序開發(fā)、云服務器、面包屑導航
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)