国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

MySQL中的字符函數的壓力測試

發(fā)布時(shí)間:2021-08-23 15:07 來(lái)源:億速云 閱讀:0 作者:chen 欄目: Mysql 歡迎投稿:712375056

本篇內容主要講解“中的字符函數的壓力測試”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強。下面就讓小編來(lái)帶大家學(xué)習“MySQL中的字符函數的壓力測試”吧!

MySQL中的字符串處理函數非常多,以至于我在整理的這部分內容的時(shí)候也眼前一亮,有一種進(jìn)了大觀(guān)園的感覺(jué),哦,原來(lái)有這個(gè)函數,哦,竟然可以這樣實(shí)現,以前怎么沒(méi)想到,等等。

比如字符串查找函數,instr,locate,position三個(gè)函數的功能都是很相似的。如果要實(shí)現一個(gè)功能,從字符串foobarbar里面找到bar這個(gè)字符串的起始位置,使用Instr,locate,position都可以實(shí)現。

SELECT INSTR('foobarbar', 'bar');

SELECT LOCATE('bar', 'foobarbar');

SELECT POSITION('bar' IN 'foobarbar');

主要語(yǔ)法的表現形式不同,當然參數設置上還是有一些差別。

對于上面的3個(gè)函數,我有些糾結,到底用哪一個(gè)呢?推薦是哪一個(gè)呢?我覺(jué)得可以通過(guò)兩種測試方式來(lái)得到一個(gè)初步的結論,第一個(gè)是高并發(fā)下多線(xiàn)程調用的性能情況,第二個(gè)是單線(xiàn)程執行的性能情況。如果在對比測試中高出一籌,還有什么理由不去推薦呢。

要實(shí)現這兩個(gè)功能,MySQL缺失提供了這樣的工具集,第一個(gè)是并發(fā)執行的性能情況,可以使用MySQL自帶的mysqlslap來(lái)測試。

而第二個(gè)單線(xiàn)程的壓測,則可以使用MySQL非常有特色的函數benchmark來(lái)實(shí)現。

如果使用myslap來(lái)壓測,使用mysqlslap的語(yǔ)句類(lèi)似下面的形式。

mysqlslap --concurrency=50,100 --create-schema="test" --query="SELECT POSITION('bar' in 'foobar');" --number-of-queries=50000

當然這里我們加大難度,一個(gè)是拼接的字符串要復雜,我們可以使用字符串函數repeat得到一個(gè)很長(cháng)的字符串,比如concat(concat(repeat('abc',500),'foobarbar'),repeat('abc',500)) 就可以得到一個(gè)很長(cháng)的字符串。

通過(guò)這種方式得到的測試結果相對來(lái)說(shuō)更有意義一些。

我們調大調用的頻次為100萬(wàn)次,使用并發(fā)50和100來(lái)做測試。

position函數的結果

Benchmark

Average number of seconds to run all queries: 34.789seconds

Minimum number of seconds to run all queries: 34.789 seconds

Maximum number of seconds to run all queries: 34.789 seconds

Number of clients running queries: 50

Average number of queries per client: 20000

Benchmark

Average number of seconds to run all queries: 35.312 seconds

Minimum number of seconds to run all queries: 35.312 seconds

Maximum number of seconds to run all queries: 35.312 seconds

Number of clients running queries: 100

Average number of queries per client: 10000

可以看出在并發(fā)50和100的情況下,100的調用時(shí)間略長(cháng)。

使用locate和Instr得到的結果相仿,都是36秒~37秒之間。

從100萬(wàn)次的測試中我們可以得到一個(gè)初步udev結論,那就是在這個(gè)場(chǎng)景中,position的性能相當要好一些。

而單線(xiàn)程的壓測情況如何呢,我們使用benchmark來(lái)模擬。

比如壓測md5的函數,就是這樣的格式。

select benchmark( 500000000, md5( 'test' ) );

對于position和locate,instr,只是需要調整一下函數就可以了,我們還是指定為100萬(wàn)次。

position,locate,instr的性能結果是

1 row in set (8.23 sec)

1 row in set (8.21 sec)

1 row in set (8.23 sec)

可以看出來(lái)性能幾乎是一樣的,locate略微高一點(diǎn)點(diǎn)。

從這個(gè)測試也可以看出明顯的性能差別,單線(xiàn)程壓測的時(shí)候是8秒多,但是并發(fā)的時(shí)候就是36秒左右,這個(gè)差別其實(shí)很大了。

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

国产成人精品综合久久久久性色| 又色又爽又黄的裸体美女图片| 精品免费一区二区在线| 美女极度色诱视频国产| 中文字幕乱码人妻无码久久| 亚洲欧美日韩在线一区|