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

MyISAM和InnoDB引擎優(yōu)化分析

 更新時(shí)間:2012年11月22日 17:16:39   作者:  
這幾天在學(xué)習(xí)mysql數(shù)據(jù)庫(kù)的優(yōu)化并在自己的服務(wù)器上進(jìn)行設(shè)置,喻名堂主要學(xué)習(xí)了MyISAM和InnoDB兩種引擎的優(yōu)化方法,需要了解跟多的朋友可以參考下
這幾天喻名堂在學(xué)習(xí)mysql數(shù)據(jù)庫(kù)的優(yōu)化并在自己的服務(wù)器上進(jìn)行設(shè)置,喻名堂主要學(xué)習(xí)了MyISAM和InnoDB兩種引擎的優(yōu)化方法,它們各有優(yōu)缺點(diǎn),一般在實(shí)際應(yīng)用中將兩種引擎結(jié)合起來(lái)使用效果會(huì)更好。喻名堂測(cè)試的硬件配置以及軟件環(huán)境如下:

服務(wù)器型號(hào):IBM S226
CPU:至強(qiáng)四核
內(nèi)存:4G
硬盤:兩個(gè)80G做RAID1
系統(tǒng):windows server 2003 SP1 32位企業(yè)版
Mysql版本:5.5
根據(jù)自己服務(wù)器的實(shí)際情況,優(yōu)化過(guò)和參數(shù)如下:

一、公共選項(xiàng)
skip-external-locking //避免MySQL的外部鎖定,減少出錯(cuò)幾率增強(qiáng)穩(wěn)定性。
skip-name-resolve //禁止MySQL對(duì)外部連接進(jìn)行DNS解析,使用這一選項(xiàng)可以消除MySQL進(jìn)行DNS解析的時(shí)間。但需要注意,如果開啟該選項(xiàng),則所有遠(yuǎn)程億恩科技主機(jī)連接授權(quán)都要使用IP地址方式,否則MySQL將無(wú)法正常處理連接請(qǐng)求!
max_connections = 1024 //指定MySQL允許的最大連接進(jìn)程數(shù)。如果在訪問(wèn)論壇時(shí)經(jīng)常出現(xiàn)Too Many Connections的錯(cuò)誤提示,則需要增大該參數(shù)值。
query_cache_size = 16M //默認(rèn)為0,就是不啟用。指定MySQL查詢緩沖區(qū)的大小??梢酝ㄟ^(guò)在MySQL控制臺(tái)執(zhí)行以下命令觀察:
# > SHOW VARIABLES LIKE '%query_cache%';
# > SHOW STATUS LIKE 'Qcache%';
# 如果Qcache_lowmem_prunes的值非常大,則表明經(jīng)常出現(xiàn)緩沖不夠的情況;
如果Qcache_hits的值非常大,則表明查詢緩沖使用非常頻繁,如果該值較小反而會(huì)影響效率,那么可以考慮不用查詢緩沖;Qcache_free_blocks,如果該值非常大,則表明緩沖區(qū)中碎片很多。
sort_buffer_size = 6M //每個(gè)線程的排序緩存大小,該選項(xiàng)對(duì)排序order by、group by起作用。注意:該參數(shù)對(duì)應(yīng)的分配內(nèi)存是每連接獨(dú)占!如果有100個(gè)連接,那么實(shí)際分配的總共排序緩沖區(qū)大小為100 × 6 = 600MB。所以,對(duì)于內(nèi)存在4GB左右的服務(wù)器推薦設(shè)置為6-8M。
record_buffer=16M //每個(gè)進(jìn)行一個(gè)順序掃描的線程為其掃描的每張表分配這個(gè)大小的一個(gè)緩沖區(qū),可以設(shè)置為2M以上
table_cache = 512 //為所有線程打開表的數(shù)量。增加該值能增加mysqld要求的文件描述符的數(shù)量。Mysql對(duì)每個(gè)唯一打開的表需要2個(gè)文件描述符。

二、MyISAM選項(xiàng)
key_buffer_size = 256M //key_buffer_size指定用于索引的緩沖區(qū)大小,增加它可得到更好的索引處理性能。對(duì)于內(nèi)存在4GB左右的服務(wù)器該參數(shù)可設(shè)置為256M或384M。
注意:該參數(shù)值設(shè)置的過(guò)大反而會(huì)是服務(wù)器整體效率降低!
read_buffer_size = 4M //讀查詢操作所能使用的緩沖區(qū)大小。和sort_buffer_size一樣,該參數(shù)對(duì)應(yīng)的分配內(nèi)存也是每連接獨(dú)享!
myisam_sort_buffer_size = 64M //默認(rèn)為16M。設(shè)置、恢復(fù)、修改表的時(shí)候使用的緩沖大小,值不要設(shè)的太大。
join_buffer_size = 8M //聯(lián)合查詢操作所能使用的緩沖區(qū)大小,和sort_buffer_size一樣,該參數(shù)對(duì)應(yīng)的分配內(nèi)存也是每連接獨(dú)享!

三、InnoDB選項(xiàng)
innodb_buffer_pool_size=1G //一個(gè)Innodb最重要的參數(shù),這個(gè)參數(shù)和MyISAM的key_buffer_size有相似之處,但也是有差別的。這個(gè)參數(shù)主要緩存innodb表的索引,數(shù)據(jù),插入數(shù)據(jù)時(shí)的緩沖,設(shè)置得越大,存取表里面數(shù)據(jù)時(shí)所需要的磁盤I/O越少,一般是內(nèi)存的一半,不超過(guò)2G,否則系統(tǒng)會(huì)崩潰。為Innodb加速優(yōu)化首要參數(shù)。該參數(shù)分配內(nèi)存的原則:這個(gè)參數(shù)默認(rèn)分配只有8M,可以說(shuō)是非常小的一個(gè)值。如果是一個(gè)專用DB服務(wù)器,那么他可以占到內(nèi)存的70%-80%。這個(gè)參數(shù)不能動(dòng)態(tài)更改,所以分配需多考慮。分配過(guò)大,會(huì)使Swap占用過(guò)多,致使Mysql的查詢特慢。如果你的數(shù)據(jù)比較小,那么可分配是你的數(shù)據(jù)大小+10%左右做為這個(gè)參數(shù)的值。

例如:數(shù)據(jù)大小為50M,那么給這個(gè)值分配innodb_buffer_pool_size=64M
innodb_additional_mem_pool_size=16M //用來(lái)存放Innodb的內(nèi)部目錄這個(gè)值不用分配太大,系統(tǒng)可以自動(dòng)調(diào)。不用設(shè)置太高。通常比較大數(shù)據(jù)設(shè)置16M夠用了,如果表比較多,可以適當(dāng)?shù)脑龃蟆H绻@個(gè)值自動(dòng)增加,會(huì)在error log有中顯示的。

innodb_log_file_size=256M //在日志組中每個(gè)日志文件的大小,一般是innodb_buffer_pool_size的25%,官方推薦是innodb_buffer_pool_size的40-50%。一般控制在幾個(gè)LOG文件相加大小在2G以內(nèi)為佳。具體情況還需要看你的事務(wù)大小,數(shù)據(jù)大小為依據(jù)。說(shuō)明:這個(gè)值分配的大小和數(shù)據(jù)庫(kù)的寫入速度,事務(wù)大小,異常重啟后的恢復(fù)有很大的關(guān)系。

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

innodb_log_buffer_size=3M //事務(wù)在內(nèi)存中的緩沖。分配原則:控制在2-8M.這個(gè)值不用太多的。他里面的內(nèi)存一般一秒鐘寫到磁盤一次。具體寫入方式和你的事務(wù)提交方式有關(guān)。在oracle等數(shù)據(jù)庫(kù)了解這個(gè),一般最大指定為3M比較合適。

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

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

相關(guān)文章

  • Windows 下noinstall方式安裝 mysql 5.7.5 m15 winx64(推薦)

    Windows 下noinstall方式安裝 mysql 5.7.5 m15 winx64(推薦)

    這篇文章主要介紹了Windows 下noinstall方式安裝 mysql-5.7.5-m15-winx64的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2016-09-09
  • Mysql Online DDL的使用詳解

    Mysql Online DDL的使用詳解

    在日常DBA運(yùn)維過(guò)程中,對(duì)表結(jié)構(gòu)進(jìn)行變更算是個(gè)普遍的需求了。如果操作的對(duì)象是個(gè)熱表、大表,難免心里一怵,這些DDL操作是否可以直接執(zhí)行,哪些會(huì)影響線上讀寫,哪些會(huì)影響主從,甚至導(dǎo)致服務(wù)器壓力驟升,本文做了梳理,希望對(duì)大家有所幫助。
    2021-05-05
  • mysql?8.0.30?降級(jí)到?8.0.27的詳細(xì)步驟

    mysql?8.0.30?降級(jí)到?8.0.27的詳細(xì)步驟

    這篇文章主要介紹了mysql?8.0.30?降級(jí)到?8.0.27,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • mysql常用備份命令和shell備份腳本分享

    mysql常用備份命令和shell備份腳本分享

    這篇文章主要介紹了mysql常用備份命令和shell備份腳本,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-09-09
  • MySQL for update鎖表還是鎖行校驗(yàn)(過(guò)程詳解)

    MySQL for update鎖表還是鎖行校驗(yàn)(過(guò)程詳解)

    在MySQL中,使用for update子句可以對(duì)查詢結(jié)果集進(jìn)行行級(jí)鎖定,以便在事務(wù)中對(duì)這些行進(jìn)行更新或者防止其他事務(wù)對(duì)這些行進(jìn)行修改,這篇文章主要介紹了MySQL for update鎖表還是鎖行校驗(yàn),需要的朋友可以參考下
    2024-02-02
  • Mysql存儲(chǔ)引擎MyISAM的常見(jiàn)問(wèn)題(表?yè)p壞、無(wú)法訪問(wèn)、磁盤空間不足)

    Mysql存儲(chǔ)引擎MyISAM的常見(jiàn)問(wèn)題(表?yè)p壞、無(wú)法訪問(wèn)、磁盤空間不足)

    這篇文章主要介紹了Mysql存儲(chǔ)引擎MyISAM的常見(jiàn)問(wèn)題,針對(duì)表?yè)p壞、無(wú)法訪問(wèn)、磁盤空間不足等問(wèn)題進(jìn)行解決,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Mysql主從GTID與binlog的區(qū)別及說(shuō)明

    Mysql主從GTID與binlog的區(qū)別及說(shuō)明

    MySQL GTID(全局事務(wù)標(biāo)識(shí)符)與binlog(二進(jìn)制日志)是搭建主從復(fù)制的兩種機(jī)制,GTID為每個(gè)事務(wù)分配唯一標(biāo)識(shí),確保復(fù)制無(wú)數(shù)據(jù)沖突或丟失,便于復(fù)制配置和管理;binlog記錄所有數(shù)據(jù)庫(kù)更改,用于數(shù)據(jù)恢復(fù)和復(fù)制,GTID基于事務(wù)標(biāo)識(shí)
    2024-10-10
  • 詳解MySQL拼接函數(shù)CONCAT的使用心得

    詳解MySQL拼接函數(shù)CONCAT的使用心得

    這篇文章主要介紹了詳解MySQL拼接函數(shù)CONCAT的使用心得,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • MySQL運(yùn)算符!=和<>及=和<=>的使用區(qū)別

    MySQL運(yùn)算符!=和<>及=和<=>的使用區(qū)別

    本文主要介紹了MySQL運(yùn)算符!=和<>及=和<=>的使用區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Mysql使用Sharding-JDBC配置教程

    Mysql使用Sharding-JDBC配置教程

    文章介紹了如何使用Sharding-JDBC對(duì)訂單表進(jìn)行水平分表,并通過(guò)配置分片規(guī)則、數(shù)據(jù)操作和測(cè)試驗(yàn)證了分表的實(shí)現(xiàn),同時(shí),文章還討論了Sharding-JDBC的多種集成方式和4種分片策略的實(shí)現(xiàn)方法,包括標(biāo)準(zhǔn)分片策略、復(fù)合分片策略、行表達(dá)式分片策略和Hint分片策略
    2025-02-02

最新評(píng)論

鄱阳县| 绥化市| 青神县| 黎平县| 贵港市| 东安县| 平凉市| 宿松县| 大理市| 通山县| 台南市| 长丰县| 弥勒县| 高碑店市| 台山市| 沙雅县| 手机| 曲阳县| 浙江省| 尖扎县| 沭阳县| 手游| 凭祥市| 阿城市| 永年县| 巴东县| 资阳市| 岫岩| 保亭| 和顺县| 阿尔山市| 本溪市| 隆子县| 镇原县| 清水县| 华阴市| 留坝县| 来宾市| 仪征市| 扎鲁特旗| 泾阳县|