<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 175  文章 - 202  trackbacks - 0
    <2011年5月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    第一個Blog,記錄哈哈的生活

    常用鏈接

    留言簿(16)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    Java links

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    轉(zhuǎn)自 http://imysql.cn/node/609

    作/譯者:吳炳錫,來源:http://imysql.cn & http://imysql.cn/blog/3208 轉(zhuǎn)載請注明作/譯者和出處,并且不能用于商業(yè)用途,違者必究。

     

    介紹:
    InnoDB給MySQL提供了具有提交,回滾和崩潰恢復(fù)能力的事務(wù)安全(ACID兼容)存儲引擎。InnoDB鎖定在行級并且也在SELECT語句提供一個Oracle風(fēng)格一致的非鎖定讀。這些特色增加了多用戶部署和性能。沒有在InnoDB中擴(kuò)大鎖定的需要,因為在InnoDB中行級鎖定適合非常小的空間。InnoDB也支持FOREIGN KEY強(qiáng)制。在SQL查詢中,你可以自由地將InnoDB類型的表與其它MySQL的表的類型混合起來,甚至在同一個查詢中也可以混合。
    Innodb 的創(chuàng)始人:Heikki Tuuri
    Heikki Tuuri在Innodb的Bug社區(qū)里也是很活躍的,如果遇到Bug也可以直接提到社區(qū),得到作者的解答。

    為什么要學(xué)習(xí)Innodb的調(diào)優(yōu):
    目前來說:InnoDB是為Mysql處理巨大數(shù)據(jù)量時的最大性能設(shè)計。它的CPU效率可能是任何其它基于磁盤的關(guān)系數(shù)據(jù)庫引擎所不能匹敵的。在數(shù)據(jù)量大的網(wǎng)站或是應(yīng)用中Innodb是倍受青睞的。
    另一方面,在數(shù)據(jù)庫的復(fù)制操作中Innodb也是能保證master和slave數(shù)據(jù)一致有一定的作用。

    參數(shù)調(diào)優(yōu)內(nèi)容:
      1. 內(nèi)存利用方面
    2. 日值控制方面
    3. 文件IO分配,空間占用方面
    4. 其它相關(guān)參數(shù)

    1.內(nèi)存利用方面:
    首先介紹一個Innodb最重要的參數(shù):
    innodb_buffer_pool_size
    這個參數(shù)和MyISAM的key_buffer_size有相似之處,但也是有差別的。這個參數(shù)主要緩存innodb表的索引,數(shù)據(jù),插入數(shù)據(jù)時的緩沖。為Innodb加速優(yōu)化首要參數(shù)。
    該參數(shù)分配內(nèi)存的原則:這個參數(shù)默認(rèn)分配只有8M,可以說是非常小的一個值。如果是一個專用DB服務(wù)器,那么他可以占到內(nèi)存的70%-80%。這個參數(shù)不能動態(tài)更改,所以分配需多考慮。分配過大,會使Swap占用過多,致使Mysql的查詢特慢。如果你的數(shù)據(jù)比較小,那么可分配是你的數(shù)據(jù)大小+10%左右做為這個參數(shù)的值。例如:數(shù)據(jù)大小為50M,那么給這個值分配innodb_buffer_pool_size=64M
    設(shè)置方法:
    innodb_buffer_pool_size=4G
    這個參數(shù)分配值的使用情況可以根據(jù)show innodb status\G;中的
    ----------------------
    BUFFER POOL AND MEMORY
    ----------------------
    Total memory allocated 4668764894;
     
    去確認(rèn)使用情況。


    第二個:
    innodb_additional_mem_pool:
    作用:用來存放Innodb的內(nèi)部目錄
    這個值不用分配太大,系統(tǒng)可以自動調(diào)。不用設(shè)置太高。通常比較大數(shù)據(jù)設(shè)置16M夠用了,如果表比較多,可以適當(dāng)?shù)脑龃蟆H绻@個值自動增加,會在error log有中顯示的。
    分配原則:
    show innodb status\G;去查看運行中的DB是什么狀態(tài)(參考BUFFER POOL AND MEMORY段中),然后可以調(diào)整到適當(dāng)?shù)闹怠?br /> ----------------------
    BUFFER POOL AND MEMORY
    ----------------------
    Total memory allocated 4668764894; in additional pool allocated 16777216
    參考:in additional pool allocated 16777216
    根據(jù)你的參數(shù)情況,可以適當(dāng)?shù)恼{(diào)整。
    設(shè)置方法:
    innodb_additional_mem_pool=16M


    2.關(guān)于日值方面:
    innodb_log_file_size
    作用:指定日值的大小
    分配原則:幾個日值成員大小加起來差不多和你的innodb_buffer_pool_size相等。上限為每個日值上限大小為4G.一般控制在幾個LOG文件相加大小在2G以內(nèi)為佳。具體情況還需要看你的事務(wù)大小,數(shù)據(jù)大小為依據(jù)。
    說明:這個值分配的大小和數(shù)據(jù)庫的寫入速度,事務(wù)大小,異常重啟后的恢復(fù)有很大的關(guān)系。
    設(shè)置方法:
    innodb_log_file_size=256M


    innodb_log_files_in_group
    作用:指定你有幾個日值組。
    分配原則: 一般我們可以用2-3個日值組。默認(rèn)為兩個。
    設(shè)置方法:
    innodb_log_files_in_group=3


    innodb_log_buffer_size:
    作用:事務(wù)在內(nèi)存中的緩沖。
    分配原則:控制在2-8M.這個值不用太多的。他里面的內(nèi)存一般一秒鐘寫到磁盤一次。具體寫入方式和你的事務(wù)提交方式有關(guān)。在Oracle等數(shù)據(jù)庫了解這個,一般最大指定為3M比較合適。
    參考:Innodb_os_log_written(show global status 可以拿到)
    如果這個值增長過快,可以適當(dāng)?shù)脑黾觟nnodb_log_buffer_size
    另外如果你需要處理大理的TEXT,或是BLOB字段,可以考慮增加這個參數(shù)的值。
    設(shè)置方法:
    innodb_log_buffer_size=3M

    innodb_flush_logs_at_trx_commit
    作用:控制事務(wù)的提交方式
    分配原則:這個參數(shù)只有3個值,0,1,2請確認(rèn)一下自已能接受的級別。默認(rèn)為1,主庫請不要更改了。
    性能更高的可以設(shè)置為0或是2,但會丟失一秒鐘的事務(wù)。
    說明:
    這個參數(shù)的設(shè)置對Innodb的性能有很大的影響,所以在這里給多說明一下。
    當(dāng)這個值為1時:innodb 的事務(wù)LOG在每次提交后寫入日值文件,并對日值做刷新到磁盤。這個可以做到不丟任何一個事務(wù)。
    當(dāng)這個值為2時:在每個提交,日志緩沖被寫到文件,但不對日志文件做到磁盤操作的刷新,在對日志文件的刷新在值為2的情況也每秒發(fā)生一次。但需要注意的是,由于進(jìn)程調(diào)用方面的問題,并不能保證每秒100%的發(fā)生。從而在性能上是最快的。但操作系統(tǒng)崩潰或掉電才會刪除最后一秒的事務(wù)。
    當(dāng)這個值為0時:日志緩沖每秒一次地被寫到日志文件,并且對日志文件做到磁盤操作的刷新,但是在一個事務(wù)提交不做任何操作。mysqld進(jìn)程的崩潰會刪除崩潰前最后一秒的事務(wù)。

    從以上分析,當(dāng)這個值不為1時,可以取得較好的性能,但遇到異常會有損失,所以需要根據(jù)自已的情況去衡量。


    設(shè)置方法:
    innodb_flush_logs_at_trx_commit=1

    3. 文件IO分配,空間占用方面
    innodb_file_per_table
    作用:使每個Innodb的表,有自已獨立的表空間。如刪除文件后可以回收那部分空間。
    分配原則:只有使用不使用。但DB還需要有一個公共的表空間。
    設(shè)置方法:
    innodb_file_per_table=1

    innodb_file_io_threads
    作用:文件讀寫IO數(shù),這個參數(shù)只在Windows上起作用。在LINUX上只會等于4
    設(shè)置方法:
    innodb_file_io_threads=4

    innodb_open_files
    作用:限制Innodb能打開的表的數(shù)據(jù)。
    分配原則:如果庫里的表特別多的情況,請增加這個。這個值默認(rèn)是300。
    設(shè)置方法:
    innodb_open_files=800 
    請適當(dāng)?shù)脑黾觮able_cache


    4. 其它相關(guān)參數(shù)
    這里說明一個比較重要的參數(shù):
    innodb_flush_method
    作用:Innodb和系統(tǒng)打交道的一個IO模型
    分配原則:Windows不用設(shè)置。
    Unix可以設(shè)置:fsync() or O_SYNC/O_DSYNC
    如果系統(tǒng)可以禁止系統(tǒng)的Cache那就把他禁了。
    Linux可以選擇:O_DIRECT 
    直接寫入磁盤,禁止系統(tǒng)Cache了
    設(shè)置方法:
    innodb_flush_method=O_DIRECT

    innodb_max_dirty_pages_pct 
    作用:控制Innodb的臟頁在緩沖中在那個百分比之下,值在范圍1-100,默認(rèn)為90.
    這個參數(shù)的另一個用處:當(dāng)Innodb的內(nèi)存分配過大,致使Swap占用嚴(yán)重時,可以適當(dāng)?shù)臏p小調(diào)整這個值,使達(dá)到Swap空間釋放出來。建義:這個值最大在90%,最小在15%。太大,緩存中每次更新需要致?lián)Q數(shù)據(jù)頁太多,太小,放的數(shù)據(jù)頁太小,更新操作太慢。
    設(shè)置方法:
    innodb_max_dirty_pages_pct=90
    動態(tài)更改需要有Super權(quán)限:
    set global innodb_max_dirty_pages_pct=50;

    總結(jié):
    這里只算是列出了Innodb部分的重要參數(shù),不能認(rèn)為是對Mysql的整體調(diào)優(yōu)。Mysql的參數(shù)一般分為:全局參數(shù),具體引擎的參數(shù)。全局參數(shù)方面請參考http://imysql.cn/2007_12_08_optimize_mysql_under_linux yejr的那個Mysql調(diào)優(yōu)的PPT。

    posted on 2011-05-04 15:37 哈哈的日子 閱讀(211) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久久久久久国产免费看| 黄色网页免费观看| 337p欧洲亚洲大胆艺术| 亚洲系列国产精品制服丝袜第| 亚洲w码欧洲s码免费| 亚洲色成人WWW永久在线观看| 久久亚洲精品国产精品| 亚洲美国产亚洲AV| 四虎影院免费在线播放| 国产日韩成人亚洲丁香婷婷| 亚洲一级二级三级不卡| 免费无码又爽又刺激高潮视频 | a级毛片免费高清视频| 特级无码毛片免费视频尤物| 在线观看人成视频免费| 亚洲成在人线aⅴ免费毛片| 99热在线观看免费| 亚洲网站在线播放| 久久WWW免费人成人片| 亚洲精品高清一二区久久| 亚洲成年人免费网站| 男女一边摸一边做爽的免费视频| 久久久久亚洲AV成人网人人网站| 中文无码日韩欧免费视频| 高清国语自产拍免费视频国产| 国产A在亚洲线播放| 国产综合成人亚洲区| 一二三四免费观看在线视频中文版 | 国产亚洲精品国产| 杨幂最新免费特级毛片| 无人在线观看完整免费版视频| 亚洲综合精品成人| 亚洲免费视频一区二区三区| 国产好大好硬好爽免费不卡 | 曰批全过程免费视频在线观看无码| 成人毛片免费网站| 亚洲中文久久精品无码1 | 久青草国产免费观看| 全亚洲最新黄色特级网站| 亚洲精品无码专区在线| 亚洲综合无码精品一区二区三区 |