最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解決方法

 更新時(shí)間:2016年05月13日 14:44:31   投稿:mdxy-dxy  
這篇文章主要介紹了mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解決方法,需要的朋友可以參考下

今天在檢查mysql服務(wù)器的時(shí)候提示Sort aborted: Out of sort memory, consider increasing server sort buffer size,安裝字面意思就是 sort內(nèi)存溢出,考慮增加服務(wù)器的排序緩沖區(qū)(sort_buffer_size)大小

sort_buffer_size=3M
join_buffer_size = 3M

下面是針對16G 內(nèi)存設(shè)置的參數(shù):

sort_buffer_size = 2M
# Sort_Buffer_Size 是一個(gè)connection級參數(shù),在每個(gè)connection(session)第一次需要使用這個(gè)buffer的時(shí)候,一次性分配設(shè)置的內(nèi)存。
#Sort_Buffer_Size 并不是越大越好,由于是connection級的參數(shù),過大的設(shè)置+高并發(fā)可能會耗盡系統(tǒng)內(nèi)存資源。例如:500個(gè)連接將會消耗 500*sort_buffer_size(8M)=4G內(nèi)存
#Sort_Buffer_Size 超過2KB的時(shí)候,就會使用mmap() 而不是 malloc() 來進(jìn)行內(nèi)存分配,導(dǎo)致效率降低。
#技術(shù)導(dǎo)讀 http://blog.webshuo.com/2011/02/16/mysql-sort_buffer_size/
#dev-doc: http://dev.mysql.com/doc/refman/5.5/en/server-parameters.html
#explain select*from table where order limit;出現(xiàn)filesort
#屬重點(diǎn)優(yōu)化參數(shù)

不過我看到有人將sort_buffer_size設(shè)置為10M,我就是因?yàn)樵O(shè)置了10M,后來我設(shè)置為2-3M,就沒有問題了

Written by cenalulu @ 2010-10-26

基礎(chǔ)知識:

1、 Sort_Buffer_Size 是一個(gè)connection級參數(shù),在每個(gè)connection第一次需要使用這個(gè)buffer的時(shí)候,一次性分配設(shè)置的內(nèi)存。
2、 Sort_Buffer_Size 并不是越大越好,由于是connection級的參數(shù),過大的設(shè)置+高并發(fā)可能會耗盡系統(tǒng)內(nèi)存資源。
3、 文檔說“On Linux, there are thresholds of 256KB and 2MB where larger values may significantly slow down memory allocation”

本文主要針對第三點(diǎn)做測試:
據(jù)說Sort_Buffer_Size 超過2KB的時(shí)候,就會使用mmap() 而不是 malloc() 來進(jìn)行內(nèi)存分配,導(dǎo)致效率降低。

環(huán)境:

為了更大的體現(xiàn)性能差距,使用 1GB內(nèi)存的Fedora 虛擬機(jī)進(jìn)行測試

測試表結(jié)構(gòu):

1w 行的表, 表結(jié)構(gòu)

+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| k     | int(10) unsigned | NO   | MUL | 0       |                |
| c     | char(120)        | NO   |     |         |                |
| pad   | char(60)         | NO   |     |         |                |
+-------+------------------+------+-----+---------+----------------+

測試語句:

分別設(shè)置Sort_Buffer_Size 為 250K ,512K, 3M ,然后運(yùn)行以下語句,查看運(yùn)行時(shí)間。
1. sql_no_cache 防止query cache起效。
2. limit 1 為了減少排序占執(zhí)行時(shí)間的比重,更多的體現(xiàn)內(nèi)存分配帶來的影響
3. 語句explain的結(jié)果是 filesort , 以確保使用sort_buffer

復(fù)制代碼 代碼如下:

mysqlslap -uroot -h127.0.0.1 -q ' select sql_no_cache * from sbtest order by pad limit 1' -c 100 --create-schema=test -i 10

測試結(jié)果:

執(zhí)行時(shí)間

250K : 1.318s
512K : 1.944s
3M     : 2.412s

250 K
[root@localhost tmp]# mysqlslap -uroot -h127.0.0.1 -q ' select sql_no_cache * from sbtest order by pad limit 1' -c 100 --create-schema=test -i 10
Benchmark
        Average number of seconds to run all queries: 1.318 seconds
        Minimum number of seconds to run all queries: 1.285 seconds
        Maximum number of seconds to run all queries: 1.378 seconds
        Number of clients running queries: 100
        Average number of queries per client: 1

512 K

[root@localhost tmp]# mysqlslap -uroot -h127.0.0.1 -q ' select sql_no_cache * from sbtest order by pad limit 1' -c 100 --create-schema=test -i 10
Benchmark
        Average number of seconds to run all queries: 1.944 seconds
        Minimum number of seconds to run all queries: 1.362 seconds
        Maximum number of seconds to run all queries: 4.406 seconds
        Number of clients running queries: 100
        Average number of queries per client: 1

3M
[root@localhost tmp]# mysqlslap -uroot -h127.0.0.1 -q ' select sql_no_cache * from sbtest order by pad limit 1' -c 100 --create-schema=test -i 10
Benchmark
        Average number of seconds to run all queries: 2.412 seconds
        Minimum number of seconds to run all queries: 2.376 seconds
        Maximum number of seconds to run all queries: 2.527 seconds
        Number of clients running queries: 100
        Average number of queries per client: 1

結(jié)論:
確實(shí)如文檔所說, 使用mmap 分配內(nèi)存時(shí),會帶來性能上的損耗,影響大約在 30% 左右。
由于是limit 1,因此減弱了buffer size對排序速度的影響。
其實(shí)buffer size 越大,所需要進(jìn)行的sort-merge的次數(shù)越少,執(zhí)行時(shí)間越短。視具體的語句而定。
我只是想說明下,并不是越大越好。 也并不存在一個(gè)絕對的最佳值。
還是要看具體的業(yè)務(wù)環(huán)境決定值的大小。 對于高并發(fā)的應(yīng)用,還是別設(shè)置太大的比較好。

相關(guān)文章

  • winx64下mysql5.7.19的基本安裝流程(詳細(xì))

    winx64下mysql5.7.19的基本安裝流程(詳細(xì))

    這篇文章主要介紹了winx64下mysql5.7.19的基本安裝流程,需要的朋友可以參考下
    2017-10-10
  • 淺談MySQL存儲過程中declare和set定義變量的區(qū)別

    淺談MySQL存儲過程中declare和set定義變量的區(qū)別

    下面小編就為大家?guī)硪黄獪\談MySQL存儲過程中declare和set定義變量的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • MySQL阻塞與死鎖的解決

    MySQL阻塞與死鎖的解決

    本文主要介紹了MySQL阻塞與死鎖的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • MySQL中配置文件my.cnf因權(quán)限問題導(dǎo)致無法啟動的解決方法

    MySQL中配置文件my.cnf因權(quán)限問題導(dǎo)致無法啟動的解決方法

    這篇文章主要給大家介紹了關(guān)于MySQL中配置文件my.cnf因權(quán)限問題導(dǎo)致無法啟動的解決方法,該無法啟動的錯(cuò)誤提示代碼是:World-writable config file '/etc/my.cnf' is ignored,文中給出了詳細(xì)的解決方法,需要的朋友們下面來一起看看吧。
    2017-06-06
  • Mysql快速插入千萬條數(shù)據(jù)的實(shí)戰(zhàn)教程

    Mysql快速插入千萬條數(shù)據(jù)的實(shí)戰(zhàn)教程

    這篇文章主要給大家介紹了關(guān)于Mysql快速插入千萬條數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • mysql日期函數(shù)TO_DAYS()函數(shù)的詳細(xì)講解

    mysql日期函數(shù)TO_DAYS()函數(shù)的詳細(xì)講解

    在SQL中我們經(jīng)常需要根據(jù)時(shí)間字段查詢數(shù)據(jù),今天用到一個(gè)好用的時(shí)間字段,用來查詢一整天的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于mysql日期函數(shù)TO_DAYS()函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • mysql中四種備份模式

    mysql中四種備份模式

    本文主要介紹了mysql中四種備份模式,無論使用哪種備份方式,都需要根據(jù)業(yè)務(wù)需求和數(shù)據(jù)量大小來選擇合適的備份策略,并定期驗(yàn)證備份是否有效,感興趣的可以了解一下
    2023-11-11
  • Flume如何自定義Sink數(shù)據(jù)至MySQL

    Flume如何自定義Sink數(shù)據(jù)至MySQL

    Flume是分布式日志收集系統(tǒng),通過自定義Sink,可實(shí)現(xiàn)將事件數(shù)據(jù)寫入MySQL,自定義Sink需繼承AbstractSink類和實(shí)現(xiàn)Configurable接口,通過process方法處理Channel數(shù)據(jù),適用于特定數(shù)據(jù)存儲需求
    2024-10-10
  • 如何解決MYSQL8.4.1 MySQL84--ERROR 1524(HY000):Plugin ‘msql_native_password‘ is not loaded問題

    如何解決MYSQL8.4.1 MySQL84--ERROR 1524(HY000):Plugin&n

    這篇文章主要介紹了如何解決MYSQL8.4.1 MySQL84--ERROR 1524(HY000):Plugin ‘msql_native_password‘ is not loaded問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 刪除MySQL數(shù)據(jù)庫的簡單教程

    刪除MySQL數(shù)據(jù)庫的簡單教程

    這篇文章主要介紹了刪除MySQL數(shù)據(jù)庫的簡單教程,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05

最新評論

泊头市| 万年县| 卢湾区| 昌图县| 洪湖市| 余江县| 留坝县| 广汉市| 江城| 台州市| 罗江县| 聊城市| 肇东市| 新民市| 红河县| 独山县| 灵璧县| 红桥区| 罗定市| 乌鲁木齐市| 焉耆| 吴堡县| 贵溪市| 古丈县| 临城县| 增城市| 灵丘县| 固始县| 营山县| 亚东县| 依安县| 柳江县| 铜梁县| 湘西| 大方县| 繁峙县| 海淀区| 东源县| 新丰县| 丰顺县| 江门市|