成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Mysql join聯表及id自增實例解析

瀏覽:207日期:2023-10-11 16:23:39

join的寫法

如果用left join 左邊的表一定是驅動表嗎?兩個表的join包含多個條件的等值匹配,都要寫道on還是只把一個寫到on,其余寫道where部分?

createtablea(f1int,f2int,index(f1))engine=innodb; createtableb(f1int,f2int)engine=innodb; insertintoavalues(1,1),(2,2),(3,3),(4,4),(5,5),(6,6); insertintobvalues(3,3),(4,4),(5,5),(6,6),(7,7),(8,8);select*fromaleftjoinbon(a.f1=b.f1)and(a.f2=b.f2);/*Q1*/ select*fromaleftjoinbon(a.f1=b.f1)where(a.f2=b.f2);/*Q2*/

執行結果:

Mysql join聯表及id自增實例解析

由于表b沒有索引,使用的是Block Nexted Loop Join(BNL)算法

把表a的內容讀入join_buffer中,因為select * ,所以字段f1,f2都被放入 順序掃描b,對于每一行數據,判斷join條件是否滿足,滿足條件的記錄,作為結果集的一行,如果有where子句,判斷where部分滿足條件后再返回。 表b掃描完成后,對于沒有匹配的表a的行,用null補上,放到結果集中。

Mysql join聯表及id自增實例解析

Q2語句中,explain結果:

Mysql join聯表及id自增實例解析

b為驅動表,如果一條語句EXTRA字段什么都沒有的話,就是Index Nested_Loop Join算法,因此流程是:

順序掃描b,每一行用b.f1到a中去查,匹配a.f2=b.f2是否滿足,作為結果集返回。

Q1與Q2執行流程的差異是因為優化器基于Q2這個查詢語義做了優化:在mysql里,null跟任何值執行等值判斷和不等值判斷的結果都是null,包括select null = null 也返回null。

在Q2中,where a.f2 = b.f2表示,查詢結果里不會包含b.f2是null的行,這樣left join語義就是找到兩個表里f1 f2對應相同的行,如果a存在而b匹配不到,就放棄。因此優化器把這條語句的left join改寫成了join,因為a的f1有索引,就把b作為驅動表,這樣可以用NLJ算法,所以在使用left join時,左邊的表不一定是驅動表。

如果需要left join的語義,就不能把被驅動表的字段放在where條件里做等值判斷或不等值判斷,必須寫在on里面。

Nested Loop Join的性能問題

BLN算法的執行邏輯

將驅動表的數據全部讀入join_buffer中,里面是無序數組。 順序遍歷被驅動表的所有行,每一行都跟join_buffer做匹配,成功則作為結果集的一部分返回。

Simple Nested Loop Join算法邏輯是:順序去除驅動表的每一行數據,到被驅動表做全表匹配。

兩者差異:

在對被驅動表做全表掃描時,如果數據沒有在buffer pool中,需要等待部分數據從磁盤讀入。會影響正常業務的buffer pool命中率,而且會對被驅動表做多次訪問,更容易將這些數據頁放到buffer pool頭部。所以BNL算法性能會更好。自增id

mysql中自增id定義了初始值,不停的增長,但是有上限,2^32-1,自增的id用完了會怎么樣呢。

表定義的自增值達到上限后,再申請下一個id時,得到的值保持不變。再次插入時會報主鍵沖突錯誤。所以在建表時,如果有頻繁的增刪改時,就應該創建8個字節的bigint unsigned。

innodb 系統自增row_id

如果創建了Innodb表沒有指定主鍵,那么innodb會創建一個不可見的,長度為6個字節的row_id,所有無主鍵的innodb表,每插入一行數據,都將當前的dict_sys.row_id值作為要插入數據的row_id,然后自增1。

實際上,代碼實現時,row_id是一個長度為8字節的無符號長整形,但是innodb在設計時,給row_id只是6個字節的長度,這樣寫道數據時只放了最后6個字節。所以:

row_id寫入表的范圍是0到2^48-1; 當達到最大時,如果再有插入數據的行為來申請row_id,拿到以后再去最后6個字節就是0,然后繼續循環。 再innodb的邏輯里,達到最大后循環,新數據會覆蓋已經存在的數據。

從這個角度看,我們應該主動創建自增主鍵,這樣達到上限后,插入數據會報錯。數據的可靠性會更加有保障。

XID

redo log 和 binlog相互配合的時候,它們有一個共同的字段就是xid,在mysql中對應事務的。xid最大時2^64次方,用盡只存在理論。

thread_id

系統保存了全局變量thread_id_counter,每新建一個連接,就將thread_id_counter賦值給這個新連接的線程變量。thread_id_counter定義的大小是4個字節,因此到2^32-1就會重置為0,然后繼續增加。但是show processlist里不會看到兩個相同的thread_id,這是因為mysql設計了一個唯一數組邏輯,給新線程分配thread_id的時候:

do{ new_id=thread_id_counter++; }while(!thread_ids.insert_unique(new_id).second);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产成人超碰人人澡人人澡| 91香蕉国产在线观看软件| 国产激情一区二区三区| 一区二区免费在线视频| 日本一区二区免费在线 | 5858s免费视频成人| 蜜臀久久99精品久久久画质超高清 | 欧美一区二区三区精品| 捆绑紧缚一区二区三区视频| 欧亚洲嫩模精品一区三区| 亚洲女人小视频在线观看| 亚洲大胆女人| 中文字幕一区二区三区色视频| 你懂的国产精品| 久久久不卡影院| www.亚洲激情.com| 日韩精品一区二区三区中文不卡| 精品中文字幕一区二区小辣椒| 在线观看日韩电影| 久久精品噜噜噜成人av农村| 一本一道久久a久久精品综合蜜臀| 亚洲无人区一区| 亚洲女同同性videoxma| 图片区小说区区亚洲影院| 久久精品三级| 日本免费新一区视频| 色综合久久九月婷婷色综合| 青青草国产精品97视觉盛宴| 在线欧美日韩精品| 精品一区二区三区在线播放视频| 欧美日韩mp4| 国产传媒一区在线| 337p日本欧洲亚洲大胆色噜噜| 成人综合在线视频| 久久久精品tv| 欧美天天在线| 亚洲视频在线一区二区| 国产欧美日本| 亚洲成人动漫一区| 91久久奴性调教| 青青草国产成人av片免费| 欧美性欧美巨大黑白大战| 免费高清不卡av| 欧美一区二区三区在| 成人午夜视频在线观看| 久久久综合视频| 国产精品xxx在线观看www| 亚洲欧美日韩一区二区 | 亚洲一区二区三区不卡国产欧美| 久久精品二区| 免费欧美在线视频| 欧美放荡的少妇| 成人丝袜高跟foot| 国产欧美一区二区在线| 1024亚洲| 日韩成人精品视频| 欧美精品黑人性xxxx| yourporn久久国产精品| 国产精品久99| 久久亚洲一区| 国产精品99久久久久久久vr| 精品国一区二区三区| 亚洲成色www久久网站| 亚洲午夜成aⅴ人片| 欧美精品1区2区| 91视频一区二区| 一区二区三区在线高清| 久久综合九色综合欧美狠狠| 国产精品资源在线观看| 国产亚洲一本大道中文在线| 中文在线一区| 精彩视频一区二区| 国产日韩三级在线| 亚洲免费影视| 国产成人亚洲精品青草天美| 国产精品你懂的在线| 模特精品在线| 国产老肥熟一区二区三区| 欧美国产日韩精品免费观看| 亚洲欧美日韩国产一区二区| 激情都市一区二区| 国产精品理伦片| 日本道色综合久久| a4yy欧美一区二区三区| 亚洲蜜臀av乱码久久精品蜜桃| 欧美综合一区二区| 欧美二区视频| 日韩国产欧美在线播放| 欧美成人午夜电影| 国产情侣一区| 国产福利一区二区三区视频| 中文字幕一区二区不卡 | 欧美午夜电影一区| 欧美一区二区三区在线免费观看| 亚洲成人你懂的| 欧美电影免费观看高清完整版在线 | 色综合久久天天综合网| 91亚洲永久精品| 三级欧美在线一区| 国产亚洲午夜高清国产拍精品| 久久伊人亚洲| 午夜欧美精品久久久久久久| 美女网站色91| 一区视频在线播放| 欧美一卡2卡3卡4卡| 国产日韩免费| 99视频在线精品| 日本va欧美va精品发布| 日本一区二区成人在线| 欧美视频一区二区三区四区| 亚洲午夜激情在线| 国产成人在线色| 亚洲大片在线观看| 国产欧美日本一区视频| 欧美日本视频在线| 国产欧美亚洲日本| 93久久精品日日躁夜夜躁欧美| 日本不卡在线视频| 国产精品久久久久四虎| 91精品国产综合久久久久久久久久| 日韩亚洲视频在线| 粉嫩在线一区二区三区视频| 亚洲gay无套男同| 国产视频一区二区在线| 欧美日韩国产小视频在线观看| 亚洲精品乱码久久久久久蜜桃麻豆| 国产福利一区二区三区视频| 婷婷中文字幕一区三区| 国产精品成人午夜| 精品sm在线观看| 欧美美女直播网站| 国产女主播一区二区三区| 欧美xxx在线观看| 国产高清精品在线| 麻豆专区一区二区三区四区五区| 一区二区三区av电影 | 中文字幕欧美激情一区| 91精品欧美一区二区三区综合在| 久久精品日韩欧美| 亚洲高清免费| 欧美 日韩 国产一区二区在线视频 | www国产精品av| 欧美伦理影视网| 日本精品免费观看高清观看| 国产日本精品| 一区二区三区我不卡| 白白色 亚洲乱淫| 国产激情一区二区三区| 免费观看30秒视频久久| 亚洲一区在线观看免费观看电影高清| 国产精品视频一二三| 欧美成人性福生活免费看| 欧美日韩高清在线| 色狠狠色狠狠综合| 免费试看一区| 亚洲免费综合| 亚洲免费播放| 黄色欧美日韩| 欧美日韩一区在线视频| 欧美激情1区2区| 91蜜桃免费观看视频| 成人午夜视频网站| 粉嫩一区二区三区性色av| 国产麻豆91精品| 狠狠色综合播放一区二区| 人人爽香蕉精品| 天天操天天色综合| 午夜久久久影院| 亚洲大型综合色站| 天天影视涩香欲综合网| 天堂成人免费av电影一区| 亚洲一线二线三线视频| 亚洲一区电影777| 亚洲国产综合在线| 一区二区免费看| 一区二区欧美视频| 亚洲一区二区在线观看视频 | 日本久久一区二区| 色综合久久久久久久久久久| 久久动漫亚洲| 久久精品三级| 色欧美日韩亚洲| 日本精品视频一区二区| 91精彩视频在线| 在线视频一区二区三区| 在线亚洲一区二区| 欧美日韩亚洲高清一区二区| 欧美调教femdomvk| 欧美日韩精品一区二区三区| 欧美日本一区二区| 日韩三级伦理片妻子的秘密按摩| 欧美大黄免费观看| 久久久综合九色合综国产精品| 国产三级精品在线| 国产精品久久二区二区| 亚洲欧美成aⅴ人在线观看| 亚洲一区影音先锋| 日本视频一区二区三区| 精品一区二区三区免费视频| 成人免费黄色在线|