国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快

瀏覽:5日期:2023-10-16 12:51:29
查詢(xún)背景

有一個(gè)表tmp_test_course大概有10萬(wàn)條記錄,然后有個(gè)json字段叫outline,存了一對(duì)多關(guān)系(保存了多個(gè)編碼,例如jy1577683381775)

我們需要在這10萬(wàn)條數(shù)據(jù)中檢索特定類(lèi)型的數(shù)據(jù),目標(biāo)總數(shù)據(jù)量:2931條

SELECT COUNT(*) FROM tmp_test_course WHERE `type`=5 AND del=2 AND is_leaf=1

MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快

我們?cè)谙薅樯厦骖?lèi)型的同時(shí),還得包含下面任意一個(gè)編碼(也就是OR查詢(xún))

jy1577683381775jy1577683380808jy1577683379178jy1577683378676jy1577683377617jy1577683376672jy1577683375903jy1578385720787jy1499916986208jy1499917112460jy1499917093400jy1499917335579jy1499917334770jy1499917333339jy1499917331557jy1499917330833jy1499917329615jy1499917328496jy1576922006950jy1499916993558jy1499916992308jy1499917003454jy1499917002952

下面分別列出4種方式查詢(xún)outline字段,給出相應(yīng)的查詢(xún)時(shí)間和掃描行數(shù)

一、like查詢(xún)

耗時(shí)248毫秒

SELECT * FROM tmp_test_course WHERE `type`=5 AND del=2 AND is_leaf=1 AND (outline like ’%jy1577683381775%’OR outline like ’%jy1577683380808%’OR outline like ’%jy1577683379178%’OR outline like ’%jy1577683378676%’OR outline like ’%jy1577683377617%’OR outline like ’%jy1577683376672%’OR outline like ’%jy1577683375903%’OR outline like ’%jy1578385720787%’OR outline like ’%jy1499916986208%’OR outline like ’%jy1499917112460%’OR outline like ’%jy1499917093400%’OR outline like ’%jy1499917335579%’OR outline like ’%jy1499917334770%’OR outline like ’%jy1499917333339%’OR outline like ’%jy1499917331557%’OR outline like ’%jy1499917330833%’OR outline like ’%jy1499917329615%’OR outline like ’%jy1499917328496%’OR outline like ’%jy1576922006950%’OR outline like ’%jy1499916993558%’OR outline like ’%jy1499916992308%’OR outline like ’%jy1499917003454%’OR outline like ’%jy1499917002952%’)

MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快

EXPLAIN分析結(jié)果如下,全表掃描

MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快

二、json函數(shù)查詢(xún)

json官方函數(shù)

耗時(shí)196毫秒,速度稍微快了一點(diǎn)

SELECT * FROM tmp_test_course WHERE `type`=5 AND del=2 AND is_leaf=1AND (JSON_SEARCH(outline, ’one’, ’jy1577683381775’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1577683380808’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1577683379178’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1577683378676’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1577683377617’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1577683376672’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1577683375903’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1578385720787’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499916986208’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499917112460’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499917093400’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499917335579’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499917334770’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499917333339’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499917331557’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499917330833’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499917329615’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499917328496’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1576922006950’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499916993558’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499916992308’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499917003454’) IS NOT NULL ORJSON_SEARCH(outline, ’one’, ’jy1499917002952’) IS NOT NULL )

MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快

EXPLAIN分析結(jié)果如下,還是全表掃描

MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快

三、聯(lián)合索引查詢(xún)

下面為該表建立一個(gè)聯(lián)合索引(本來(lái)想建一個(gè)type-del-is_leaf-outline的索引,但是outline字段太長(zhǎng)限制,所以只加type-del-is_leaf的聯(lián)合索引

ALTER TABLE tmp_test_course ADD KEY `type-del-is_leaf` (`type`,`del`,`is_leaf`)

加入索引后再執(zhí)行l(wèi)ike和json查詢(xún),明顯提速。like執(zhí)行用了136毫秒,json查詢(xún)用了82.6毫秒,由此可見(jiàn)針對(duì)json類(lèi)型使用json函數(shù)查詢(xún)比like快

MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快

EXPLAIN分析結(jié)果如下,兩者查詢(xún)掃描的行數(shù)都限定在了2931行

MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快

四、全文索引查詢(xún)

因?yàn)槿乃饕恢С諧HAR、VARCHAR和TEXT,我們需要把JSON字段定義改一下

ALTER TABLE tmp_test_course MODIFY `outline` VARCHAR(1024) NOT NULL DEFAULT ’[]’

添加全文索引

ALTER TABLE tmp_test_course ADD FULLTEXT INDEX outline (outline);

現(xiàn)在再來(lái)用全文索引進(jìn)行檢索

SELECT * FROM tmp_test_course WHERE `type`=5 AND del=2 AND is_leaf=1AND MATCH(outline) AGAINST (’jy1577683381775 jy1577683380808 jy1577683379178 jy1577683378676 jy1577683377617 jy1577683376672 jy1577683375903 jy1578385720787 jy1499916986208 jy1499917112460 jy1499917093400 jy1499917335579 jy1499917334770 jy1499917333339 jy1499917331557 jy1499917330833 jy1499917329615 jy1499917328496 jy1576922006950 jy1499916993558 jy1499916992308 jy1499917003454 jy1499917002952’)

耗時(shí)11.6毫秒,速度提升極其明顯,可見(jiàn)全文索引的牛逼。

MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快

EXPLAIN分析結(jié)果如下,顯示只掃描了一行

MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快

結(jié)論

以下是4種情況的執(zhí)行結(jié)果

全文索引: 11.6ms聯(lián)合索引:82.6ms(json)、136ms(like)json函數(shù)查詢(xún):196mslike查詢(xún): 248ms

結(jié)論:全文索引 > 聯(lián)合索引 > json函數(shù)查詢(xún) > like查詢(xún)

數(shù)據(jù)量越大,全文索引速度越明顯,就10萬(wàn)的量,查詢(xún)速度大概比直接查詢(xún)快了20倍左右,如果是百萬(wàn)或千萬(wàn)級(jí)別的表,提升差距會(huì)更加大,所以有條件還是老老實(shí)實(shí)用全文索引吧

到此這篇關(guān)于MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快的文章就介紹到這了,更多相關(guān)mysql 全文索引 聯(lián)合索引 like查詢(xún) json查詢(xún)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
相關(guān)文章:
主站蜘蛛池模板: freesex日本高清nice | 久久男人的天堂色偷偷 | jizjizjiz亚洲人 | 日本加勒比一区 | 久久精品亚洲乱码伦伦中文 | 免费一级欧美毛片 | 成人国产精品免费视频不卡 | 久久综合色88 | 亚洲欧美网站 | 久久99精品久久久久久久不卡 | 一a一片一级一片啪啪 | 精品毛片免费看 | 91精品一区二区综合在线 | 国产一级精品高清一级毛片 | 一级做a爱视频 | 久久午夜国产片 | 91久久久久久久 | 国产成人刺激视频在线观看 | 亚洲黄色成人 | 另类视频区第一页 | 亚洲人成网7777777国产 | 成人免费网站 | 美女扒开腿让男人桶尿口 | 欧美色综合高清视频在线 | 国产一区二区三区不卡免费观看 | 日本免费一区二区三区毛片 | 久久99精品九九九久久婷婷 | 国产成人精品日本亚洲专一区 | 欧美视频一区二区三区四区 | 精品久久九九 | 亚洲精品美女国产一区 | 国产成人免费午夜在线观看 | 久久综合狠狠综合久久97色 | 国产视频一二三 | 中文无线乱码二三四区 | 日日噜噜噜夜夜爽爽狠狠69 | 亚洲精品福利一区二区三区 | 91免费视 | 91成人免费在线视频 | 亚洲精品一区二区在线观看 | 久久香蕉国产线看观看精品yw |