千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當前位置:首頁  >  技術(shù)干貨  > mysql中in大量數(shù)據(jù)導(dǎo)致查詢速度慢怎么優(yōu)化?

mysql中in大量數(shù)據(jù)導(dǎo)致查詢速度慢怎么優(yōu)化?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-11 22:53:49 1697036029

一、mysql中in大量數(shù)據(jù)導(dǎo)致查詢速度慢怎么優(yōu)化

拆分sql語句

mysql中in大量數(shù)據(jù)導(dǎo)致查詢速度慢,優(yōu)化的名列前茅種方案是拆分sql子查詢,將一條sql拆為兩條sql,將in內(nèi)部的sql拆分出來,取出isbn集合列表,然后利用mybatis的sql拼接的功能,拼成完整的sql語句。

Xml代碼如下所示,名列前茅步首先利用時間參數(shù)分頁取出isbn列表

第二步先在服務(wù)層中判斷上一輪取出的isbn列表是否為空,如果不為空繼續(xù)向下執(zhí)行,如果isbn集合列表不為空,繼續(xù)利用mybatis提供的xml動態(tài)標簽功能,拼接出in查詢條件

聯(lián)結(jié)代替子查詢

這種方案原理還是避免子查詢,將子查詢語句改寫為聯(lián)結(jié)查詢,改寫后的sql語句如下所示

SELECT

??? t1.isbn,

??? code

FROM

??? tb_book_main t1

??? INNER JOIN

??? ( SELECT isbn FROM tb_book_base WHERE publish_time BETWEEN 20190903 AND 20191003 ) t2

on t1.isbn = t2.isbn

AND role= 100

limit 0,10

使用explain查看索引命中情況,mysql按照預(yù)期命中了tb_book_base的publish_time和tb_book_main的isbn索引

延伸閱讀:

二、什么是Memory引擎

Memory引擎是Mysql的內(nèi)存引擎,在實現(xiàn)上,Memory存儲引擎不同于Innodb這種組織索引結(jié)構(gòu)(索引即是數(shù)據(jù),即數(shù)據(jù)存放在主鍵索引上),而是將索引和數(shù)據(jù)分開存儲。索引采用Hash的形式,存放主鍵id和指向數(shù)據(jù)的指針,而數(shù)據(jù)則按插入順序存放。我們稱這種數(shù)據(jù)組織方式為堆組織方式。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲aⅴ欧美综合一区二区三区 | 日韩一区二区三区免费AⅤ 午夜性刺激在线观看视频 综合偷自拍亚洲乱中文字幕 | 久久久综合色88一本到鬼色 | 免费h片网站在线观看视频 原创国产中文AV | 日韩中文字幕一区 | 色婷婷亚洲一区二区三区 |